From 5583ed224f815e329375553995d26a709c6b539b Mon Sep 17 00:00:00 2001 From: vvish Date: Sat, 8 Aug 2026 21:09:03 +0200 Subject: [PATCH 1/6] Update CI to use build_type from matrix --- .github/workflows/cmake-clang.yml | 2 +- .github/workflows/cmake-gcc.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cmake-clang.yml b/.github/workflows/cmake-clang.yml index 73fb7e3..96f6cf3 100644 --- a/.github/workflows/cmake-clang.yml +++ b/.github/workflows/cmake-clang.yml @@ -39,4 +39,4 @@ jobs: - name: Test working-directory: ${{env.BUILD_DIR}} - run: ctest -C ${{env.BUILD_TYPE}} + run: ctest -C ${{matrix.build_type}} diff --git a/.github/workflows/cmake-gcc.yml b/.github/workflows/cmake-gcc.yml index e68df6b..f9a9079 100644 --- a/.github/workflows/cmake-gcc.yml +++ b/.github/workflows/cmake-gcc.yml @@ -32,7 +32,7 @@ jobs: - name: Test working-directory: ${{env.BUILD_DIR}} - run: ctest -C ${{env.BUILD_TYPE}} + run: ctest -C ${{matrix.build_type}} - name: Generate coverage report if: ${{matrix.build_type == 'Debug'}} From 52f5e35ad3fad4c48b6469028138210baa85c4e5 Mon Sep 17 00:00:00 2001 From: vvish Date: Sat, 8 Aug 2026 21:18:42 +0200 Subject: [PATCH 2/6] Update gcc in CI to v. 14 --- .github/workflows/cmake-gcc.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cmake-gcc.yml b/.github/workflows/cmake-gcc.yml index f9a9079..0635782 100644 --- a/.github/workflows/cmake-gcc.yml +++ b/.github/workflows/cmake-gcc.yml @@ -7,8 +7,8 @@ on: branches: [ "main" ] env: - CXX_COMPILER: g++-12 - C_COMPILER: gcc-12 + CXX_COMPILER: g++-14 + C_COMPILER: gcc-14 jobs: build: @@ -39,8 +39,8 @@ jobs: working-directory: ${{github.workspace}} run: | sudo apt-get install lcov - lcov --gcov-tool gcov-12 --base-directory . --directory ${{env.BUILD_DIR}} -c -o coverage.info - lcov --gcov-tool gcov-12 --remove coverage.info "test/*" -o coverage.info + lcov --gcov-tool gcov-14 --base-directory . --directory ${{env.BUILD_DIR}} -c -o coverage.info + lcov --gcov-tool gcov-14 --remove coverage.info "test/*" -o coverage.info - name: Upload coverage to Codecov if: ${{matrix.build_type == 'Debug'}} From 15e737fd3542571fe612e0aa51cb9b02b8f15387 Mon Sep 17 00:00:00 2001 From: vvish Date: Sun, 9 Aug 2026 10:18:23 +0200 Subject: [PATCH 3/6] Switch to gcovr to collect coverage due to lcov 'mismatch' issue --- .github/workflows/cmake-gcc.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cmake-gcc.yml b/.github/workflows/cmake-gcc.yml index 0635782..a5b0e01 100644 --- a/.github/workflows/cmake-gcc.yml +++ b/.github/workflows/cmake-gcc.yml @@ -38,9 +38,13 @@ jobs: if: ${{matrix.build_type == 'Debug'}} working-directory: ${{github.workspace}} run: | - sudo apt-get install lcov - lcov --gcov-tool gcov-14 --base-directory . --directory ${{env.BUILD_DIR}} -c -o coverage.info - lcov --gcov-tool gcov-14 --remove coverage.info "test/*" -o coverage.info + set -eux + python3 -m pip install --upgrade pip + python3 -m pip install gcovr + g++-14 --version + gcov-14 --version + gcovr --version + gcovr -r . --gcov-executable gcov-14 --object-directory ${{env.BUILD_DIR}} --exclude 'test/.*' --exclude '3p/.*' --lcov -o coverage.info - name: Upload coverage to Codecov if: ${{matrix.build_type == 'Debug'}} From 064870c09bdaf4bfb143ede231494072e5f02f74 Mon Sep 17 00:00:00 2001 From: vvish Date: Sun, 9 Aug 2026 17:06:54 +0200 Subject: [PATCH 4/6] Use token for codecov --- .github/workflows/cmake-gcc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cmake-gcc.yml b/.github/workflows/cmake-gcc.yml index a5b0e01..572c17d 100644 --- a/.github/workflows/cmake-gcc.yml +++ b/.github/workflows/cmake-gcc.yml @@ -53,3 +53,4 @@ jobs: fail_ci_if_error: true verbose: true files: coverage.info + token: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file From 7aee7dff6cbdd930db5bfec4b2ed1b5722545fe6 Mon Sep 17 00:00:00 2001 From: vvish Date: Sun, 9 Aug 2026 18:24:48 +0200 Subject: [PATCH 5/6] Update clang CI toolchain --- .github/workflows/cmake-clang.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cmake-clang.yml b/.github/workflows/cmake-clang.yml index 96f6cf3..3c505d8 100644 --- a/.github/workflows/cmake-clang.yml +++ b/.github/workflows/cmake-clang.yml @@ -7,8 +7,8 @@ on: branches: [ "main" ] env: - CXX_COMPILER: clang++-17 - C_COMPILER: clang-17 + CXX_COMPILER: clang++-20 + C_COMPILER: clang-20 jobs: build: @@ -27,9 +27,9 @@ jobs: - name: Prepare environment run: | wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && \ - sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main' && \ + sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main' && \ sudo apt update && \ - sudo apt-get install clang-17 lldb-17 lld-17 libc++-17-dev libc++abi-17-dev + sudo apt-get install clang-20 lldb-20 lld-20 libc++-20-dev libc++abi-20-dev - name: Configure CMake run: cmake -B ${{env.BUILD_DIR}} -DCMAKE_CXX_COMPILER=${{env.CXX_COMPILER}} -DCMAKE_C_COMPILER=${{env.C_COMPILER}} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} From 18cb0027290ab2ff8665787ca207a465ccf4ea6c Mon Sep 17 00:00:00 2001 From: vvish Date: Sun, 9 Aug 2026 18:39:07 +0200 Subject: [PATCH 6/6] Fix clang install --- .github/workflows/cmake-clang.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cmake-clang.yml b/.github/workflows/cmake-clang.yml index 3c505d8..75c6ea1 100644 --- a/.github/workflows/cmake-clang.yml +++ b/.github/workflows/cmake-clang.yml @@ -26,10 +26,8 @@ jobs: - name: Prepare environment run: | - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && \ - sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main' && \ - sudo apt update && \ - sudo apt-get install clang-20 lldb-20 lld-20 libc++-20-dev libc++abi-20-dev + sudo apt-get update + sudo apt-get install -y clang-20 lld-20 libc++-20-dev libc++abi-20-dev - name: Configure CMake run: cmake -B ${{env.BUILD_DIR}} -DCMAKE_CXX_COMPILER=${{env.CXX_COMPILER}} -DCMAKE_C_COMPILER=${{env.C_COMPILER}} -DCMAKE_BUILD_TYPE=${{matrix.build_type}}