From 9421bbbb3a7f85914f8746cc0a09654080a53d49 Mon Sep 17 00:00:00 2001 From: nikbott Date: Tue, 7 Jul 2026 06:19:52 -0300 Subject: [PATCH] ci: re-add clang-17 to the cpu matrix (scoped OpenMP runtime) clang-17 was dropped (6bc79a9) because the shared apt-get install line carried libomp-17-dev for every matrix job; when that package failed to resolve, the install step died in all jobs (including gcc), reddening the whole matrix. The failure was packaging, not a C++20 source divergence. Re-add clang-17 and move its LLVM OpenMP runtime into a clang-only step (if: startsWith(matrix.compiler.cc, 'clang')) so a clang-specific package can never block the gcc jobs again. Closes #15. --- .github/workflows/ci.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f8e95c..cc64b33 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,11 +62,12 @@ jobs: strategy: fail-fast: false matrix: - # clang-17 temporarily dropped: its OpenMP runtime isn't discoverable - # with the stock noble libomp on the runner (see issue). gcc-13 with - # sanitizers is the supported CI compiler. Re-add clang once fixed. + # Two-compiler coverage. clang's LLVM OpenMP runtime (libomp-17-dev) is + # installed only in the clang jobs (see step below) so a clang-specific + # package never blocks the gcc jobs' apt install. compiler: - { cc: gcc-13, cxx: g++-13 } + - { cc: clang-17, cxx: clang++-17 } build_type: [Debug, Release] runs-on: ubuntu-24.04 timeout-minutes: 30 @@ -80,6 +81,11 @@ jobs: sudo apt-get update sudo apt-get install -y cmake ninja-build libomp-dev \ openmpi-bin libopenmpi-dev catch2 ccache + # clang needs the matching LLVM OpenMP runtime for CMake's FindOpenMP. + # Scoped to clang jobs so this package can't break the gcc matrix entry. + - name: Install clang OpenMP runtime + if: startsWith(matrix.compiler.cc, 'clang') + run: sudo apt-get install -y clang-17 libomp-17-dev - uses: actions/cache@v5 with: path: ~/.cache/ccache