Skip to content

CI/CD & Presets Architecture

Matrix Architecture

The build pipeline spans 3 platforms executing in parallel across independent runner machines:

flowchart TD
    subgraph Matrix["Build Matrix (Parallel)"]
        W["Stage 1: Windows (MSVC)"]
        L["Stage 2: Linux (Clang/GCC)"]
        D["Stage 3: Darwin (Clang)"]
    end

    GH["Stage 4: GitHub Release (Manual)"]
    NU["Stage 5: NuGet Release"]
    PD["Stage 6: Docs Publish (Manual)"]

    Matrix --> GH
    GH --> NU
    Matrix --> PD

CMake Presets Matrix

Defined in CMakePresets.json and customized via project-base.json:

Preset Host OS Compiler Architecture Build Type
Windows-x64-Release Windows MSVC (cl.exe) x64 Release
Windows-x64-Debug Windows MSVC (cl.exe) x64 Debug
Windows-arm64-Release Windows MSVC (cl.exe) arm64 Release
Windows-arm64-Debug Windows MSVC (cl.exe) arm64 Debug
Linux-Clang-Release Linux clang++ x64 / arm64 Release
Linux-Clang-Debug Linux clang++ x64 / arm64 Debug
Linux-GCC-Release Linux g++ x64 / arm64 Release
Linux-GCC-Debug Linux g++ x64 / arm64 Debug
Darwin-Clang-Release macOS AppleClang arm64 Release
Darwin-Clang-Debug macOS AppleClang arm64 Debug

GitVersion & Semantic Versioning

Semantic Versioning is controlled by GitVersion.yml.

Bump Type Commit Message Tag
Major +semver: major or +semver: breaking
Minor +semver: minor or +semver: feature
Patch +semver: patch or +semver: fix
Skip +semver: skip or +semver: none