From d83d1b9b8cc12db62787a8d885313e963c1b3ffa Mon Sep 17 00:00:00 2001 From: Tristan Brindle Date: Fri, 11 Sep 2026 12:14:34 +0100 Subject: [PATCH 1/6] Update Linux CI config * Add GCC16, Clang 22 and Clang 23 compilers * Fix Homebrew warnings --- .github/workflows/linux.yml | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index bde53fb..4485494 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - compiler: [GCC-13, GCC-14, GCC-15, Clang-17, Clang-18, Clang-19, Clang-20, Clang-21] + compiler: [GCC-13, GCC-14, GCC-15, GCC-16, Clang-17, Clang-18, Clang-19, Clang-20, Clang-21, Clang-22, Clang-23] build_type: [Debug, Release] include: @@ -23,55 +23,62 @@ jobs: build_module: false install: | brew install gcc@13 ninja binutils - brew link --force binutils - compiler: GCC-14 cxx: g++-14 build_module: false install: | brew install gcc@14 ninja binutils - brew link --force binutils - compiler: GCC-15 cxx: g++-15 build_module: true install: | brew install gcc@15 ninja binutils - brew link --force binutils + - compiler: GCC-16 + cxx: g++-16 + build_module: true + install: | + brew install gcc@16 ninja binutils - compiler: Clang-17 cxx: $(brew --prefix llvm@17)/bin/clang++ build_module: false install: | brew install llvm@17 ninja binutils - brew link --force binutils - compiler: Clang-18 cxx: $(brew --prefix llvm@18)/bin/clang++ build_module: true install: | brew install llvm@18 ninja binutils - brew link --force binutils - compiler: Clang-19 cxx: $(brew --prefix llvm@19)/bin/clang++ build_module: true install: | brew install llvm@19 ninja binutils - brew link --force binutils - compiler: Clang-20 cxx: $(brew --prefix llvm@20)/bin/clang++ build_module: true install: | brew install llvm@20 ninja binutils - brew link --force binutils - compiler: Clang-21 cxx: $(brew --prefix llvm@21)/bin/clang++ build_module: true install: | brew install llvm@21 ninja binutils - brew link --force binutils + - compiler: Clang-22 + cxx: $(brew --prefix llvm@22)/bin/clang++ + build_module: true + install: | + brew install llvm@22 ninja binutils + - compiler: Clang-23 + cxx: $(brew --prefix llvm@23)/bin/clang++ + build_module: true + install: | + brew install llvm@23 ninja binutils steps: - uses: actions/checkout@master - name: Set up Homebrew - uses: Homebrew/actions/setup-homebrew@master + uses: Homebrew/actions/setup-homebrew@1f8e202ffddf94def7f42f6fa3a482e821489f9c - name: Create Build Environment run: | From 7016aa18cfd7e3486702c43089d8098da696243e Mon Sep 17 00:00:00 2001 From: Tristan Brindle Date: Fri, 11 Sep 2026 12:42:15 +0100 Subject: [PATCH 2/6] Update MacOS CI * Use macos-26 (arm64) image * Add GCC13, 14 and 15 * Add LLVM Clang 22 and 23 * Fix Homebrew warnings --- .github/workflows/macos.yml | 41 ++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 118c4ca..071bb67 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -14,46 +14,63 @@ env: jobs: build: - runs-on: macos-15 + runs-on: macos-26 strategy: matrix: - compiler: [AppleClang, LLVM-Clang-17, LLVM-Clang-18, LLVM-Clang-19, LLVM-Clang-20, LLVM-Clang-21] + compiler: [AppleClang, GCC-13, GCC-14, GCC-15, LLVM-Clang-17, LLVM-Clang-18, LLVM-Clang-19, LLVM-Clang-20, LLVM-Clang-21, LLVM-Clang-22, LLVM-Clang-23] build_type: [Debug, Release] include: - compiler: AppleClang cxx: clang++ - install: | - brew install ninja + build_module: false + - compiler: GCC-13 + cxx: g++-13 + build_module: false + - compiler: GCC-14 + cxx: g++-14 + build_module: false + - compiler: GCC-15 + cxx: g++-15 + build_module: true - compiler: LLVM-Clang-17 cxx: $(brew --prefix llvm@17)/bin/clang++ build_module: false install: | - brew install llvm@17 ninja + brew install --skip-link llvm@17 - compiler: LLVM-Clang-18 cxx: $(brew --prefix llvm@18)/bin/clang++ build_module: true install: | - brew install llvm@18 ninja + brew install --skip-link llvm@18 - compiler: LLVM-Clang-19 cxx: $(brew --prefix llvm@19)/bin/clang++ build_module: true install: | - brew install llvm@19 ninja + brew install --skip-link llvm@19 - compiler: LLVM-Clang-20 cxx: $(brew --prefix llvm@20)/bin/clang++ build_module: true install: | - brew update - brew install llvm@20 ninja + brew install --skip-link llvm@20 - compiler: LLVM-Clang-21 cxx: $(brew --prefix llvm@21)/bin/clang++ ldflags: -L$(brew --prefix llvm@21)/lib/c++ build_module: true install: | - brew update - brew install llvm@21 ninja - + brew install --skip-link llvm@21 + - compiler: LLVM-Clang-22 + cxx: $(brew --prefix llvm@22)/bin/clang++ + ldflags: -L$(brew --prefix llvm@22)/lib/c++ + build_module: true + install: | + brew install --skip-link llvm@22 + - compiler: LLVM-Clang-23 + cxx: $(brew --prefix llvm@23)/bin/clang++ + ldflags: -L$(brew --prefix llvm@23)/lib/c++ + build_module: true + install: | + brew install --skip-link llvm@23 steps: - uses: actions/checkout@master From 3e8cb91f1b36bcb0ad2a600e23af1abdd2021db9 Mon Sep 17 00:00:00 2001 From: Tristan Brindle Date: Fri, 11 Sep 2026 12:55:13 +0100 Subject: [PATCH 3/6] Update Windows CI * Use windows-2025 image * Don't manually install Ninja * Update setup-msvc-dev action to v4 --- .github/workflows/windows.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index e7f74e0..8d71bb6 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -11,7 +11,7 @@ env: jobs: build: - runs-on: windows-2022 + runs-on: windows-2025 strategy: matrix: platform: [x86, x64] @@ -19,8 +19,7 @@ jobs: steps: - uses: actions/checkout@master - - uses: seanmiddleditch/gha-setup-ninja@master - - uses: TheMrMilchmann/setup-msvc-dev@v3 + - uses: TheMrMilchmann/setup-msvc-dev@v4 with: arch: ${{matrix.platform}} From cf32f1b870d04007518a5fd2c5c23ecca346890d Mon Sep 17 00:00:00 2001 From: Tristan Brindle Date: Fri, 11 Sep 2026 13:10:19 +0100 Subject: [PATCH 4/6] Update CodeQL CI * Update CodeQL actions to v4 --- .github/workflows/codeql-analysis.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 7dbc789..8a7e234 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -42,26 +42,26 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file. - + # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs # queries: security-extended,security-and-quality - + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v3 + uses: github/codeql-action/autobuild@v4 # â„šī¸ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - # If the Autobuild fails above, remove it and uncomment the following three lines. + # If the Autobuild fails above, remove it and uncomment the following three lines. # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. # - run: | @@ -73,7 +73,7 @@ jobs: # cd ${{runner.workspace}}/build # cmake ${GITHUB_WORKSPACE} -GNinja -DCMAKE_CXX_COMPILER=g++-13 # cmake --build . - + - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + uses: github/codeql-action/analyze@v4 From bafbc87e15606f670dd70014e527ec5b622386f3 Mon Sep 17 00:00:00 2001 From: Tristan Brindle Date: Fri, 11 Sep 2026 13:59:18 +0100 Subject: [PATCH 5/6] Update MSVC code analysis CI config * Update msvc-code-analysis-action to v0.1.1 rather than a random commit * Update upload-sarif action to v4 --- .github/workflows/msvc_code_analysis.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/msvc_code_analysis.yml b/.github/workflows/msvc_code_analysis.yml index 57239db..05efa75 100644 --- a/.github/workflows/msvc_code_analysis.yml +++ b/.github/workflows/msvc_code_analysis.yml @@ -19,6 +19,7 @@ on: env: # Path to the CMake build directory. build: '${{ github.workspace }}/build' + config: 'Debug' permissions: contents: read @@ -39,24 +40,25 @@ jobs: # Disable building examples to avoid uploading multiple SARIF files # https://github.blog/changelog/2025-07-21-code-scanning-will-stop-combining-multiple-sarif-runs-uploaded-in-the-same-sarif-file/ - name: Configure CMake - run: cmake -B ${{ env.build }} -DTCB_POINTER_BUILD_EXAMPLES=Off + run: cmake -B ${{ env.build }} -DCMAKE_BUILD_TYPE=${{ env.config }} -DTCB_POINTER_BUILD_EXAMPLES=Off # Build is not required unless generated source files are used # - name: Build CMake # run: cmake --build ${{ env.build }} - name: Initialize MSVC Code Analysis - uses: microsoft/msvc-code-analysis-action@04825f6d9e00f87422d6bf04e1a38b1f3ed60d99 + uses: microsoft/msvc-code-analysis-action@v0.1.1 # Provide a unique ID to access the sarif output path id: run-analysis with: cmakeBuildDirectory: ${{ env.build }} + buildConfiguration: ${{ env.config }} # Ruleset file that will determine what checks will be run ruleset: NativeRecommendedRules.ruleset # Upload SARIF file to GitHub Code Scanning Alerts - name: Upload SARIF to GitHub - uses: github/codeql-action/upload-sarif@v3 + uses: github/codeql-action/upload-sarif@v4 with: sarif_file: ${{ steps.run-analysis.outputs.sarif }} From e4af8b8c89df33c259328ffddaf72193d0f5bdb0 Mon Sep 17 00:00:00 2001 From: Tristan Brindle Date: Fri, 11 Sep 2026 14:13:04 +0100 Subject: [PATCH 6/6] Update sanitizer CI * Update asan and ubsan builds to use GCC16 * Fix Homebrew warnings in sanitizers.yml --- .github/workflows/santizers.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/santizers.yml b/.github/workflows/santizers.yml index 063e0a0..69880ce 100644 --- a/.github/workflows/santizers.yml +++ b/.github/workflows/santizers.yml @@ -14,16 +14,15 @@ jobs: sanitizer: [address, undefined] build_type: [Debug, Release] include: - - cxx: g++-15 + - cxx: g++-16 install: | - brew install gcc@15 ninja binutils - brew link --force binutils + brew install gcc@16 ninja binutils steps: - uses: actions/checkout@master - name: Set up Homebrew - uses: Homebrew/actions/setup-homebrew@master + uses: Homebrew/actions/setup-homebrew@1f8e202ffddf94def7f42f6fa3a482e821489f9c - name: Create Build Environment run: |