Skip to content

[#12]:svarga:ci, align CI matrix with h5cpp staging and replace HDF5 dep with LLVM toolchain#15

Merged
steven-varga merged 3 commits into
stagingfrom
12-ci-align-matrix-with-h5cpp-staging
May 15, 2026
Merged

[#12]:svarga:ci, align CI matrix with h5cpp staging and replace HDF5 dep with LLVM toolchain#15
steven-varga merged 3 commits into
stagingfrom
12-ci-align-matrix-with-h5cpp-staging

Conversation

@steven-varga
Copy link
Copy Markdown
Collaborator

Summary

  • Mirror h5cpp/staging's 12-cell explicit include: matrix in h5cpp-compiler.
  • Replace the spurious libhdf5-dev install with the LLVM/Clang dev libs the tool actually links against.
  • Cache LLVM toolchain per matrix cell on all three runners (Linux apt / macOS brew / Windows choco).
  • Update README.md build-matrix table to mirror h5cpp/staging's 9-column layout and add staging-build-matrix.md companion.

Closes #7, #8, #10, #12.

What changed

File Change
.github/workflows/ci.yml Rewrite. 12-cell include: matrix. LLVM dev libs installed per cell, cached. No HDF5. No -DCMAKE_CXX_STANDARD=23 override. Adds concurrency group, timeout-minutes: 45, actions/checkout@v6.
CMakeLists.txt Conditionalise -fno-rtti and the Release -s linker flag on NOT MSVC. Add CMAKE_PREFIX_PATH hint for C:/Program Files/LLVM on Windows. Lifted from branch 10-windows-ci.
README.md Replace 6-column matrix with 9-column matrix (matches h5cpp/staging). NA placeholders for cells outside the matrix. Update repo references from vargaconsulting to vargalabs. Add codecov badge URL.
staging-build-matrix.md New file. Same table, badge URLs point at badges-staging/. Mirrors h5cpp/staging's companion file.

Matrix

OS / Compiler GCC 13 GCC 14 Clang 17 Clang 18 Clang 19 Clang 20 Apple Clang MSVC
ubuntu-22.04
ubuntu-24.04
macos-15
windows-latest

Each matrix cell carries an explicit llvm-version field. Clang cells use a matching LLVM version (clang-17 → LLVM 17, clang-20 → LLVM 20). Gcc / apple-clang / msvc cells use LLVM 18 as a stable baseline.

Cache strategy

Runner Mechanism Path / key
Linux awalsh128/cache-apt-pkgs-action@v1 packages: llvm-N-dev libclang-N-dev clang-N cmake ninja-build; key derives from (os, llvm-version)
macOS actions/cache@v4 /opt/homebrew/opt/llvm@N, /opt/homebrew/Cellar/llvm@N; key macos-llvm-N-v1
Windows actions/cache@v4 C:\Program Files\LLVM; key windows-llvm-N-v1

Test plan

  • CI runs on this PR push. All 12 cells execute cmake configure, build, ctest (no fixtures yet — ctest --no-tests=ignore tolerates an empty test surface; test, add transform fixture pack for coverage #13 will populate it).
  • LLVM toolchain caches hit on the second push to the same branch.
  • No libhdf5-dev install in any cell.
  • Badge artifacts uploaded; Generate SVG Badges job runs after build matrix completes.

Follow-ups

Conventions

  • Branch cut from staging. ✓
  • PR targets staging. ✓
  • Three commits, one per category (fix, ci, docs), all [#12]:svarga:....

…ints

Lifted and extended from branch 10-windows-ci (closed via #12).
MSVC does not accept -fno-rtti or the linker -s flag; conditionalise
both on NOT MSVC. Add a CMAKE_PREFIX_PATH hint so cmake finds the
choco-installed LLVM at C:/Program Files/LLVM on Windows runners
without requiring -DLLVM_DIR on the command line.
…dep with LLVM toolchain

Rewrite .github/workflows/ci.yml so h5cpp-compiler's CI matrix mirrors
h5cpp/staging structurally: a 12-cell explicit include block covering
ubuntu-22.04 (gcc-13, clang-17/18/19/20), ubuntu-24.04 (gcc-13/14,
clang-18/19/20), macos-15/apple-clang, and windows-latest/msvc.

Replace the libhdf5-dev install (not a dependency of this tool) with
the LLVM/Clang dev libs the tool actually links against
(llvm-N-dev, libclang-N-dev, clang-N). Each matrix cell installs a
specific LLVM version: clang cells use a version matching their build
compiler; gcc, apple-clang, and msvc cells use LLVM 18 as a stable
baseline.

Cache the LLVM toolchain per matrix entry:
  - Linux: awalsh128/cache-apt-pkgs-action@v1
  - macOS: actions/cache against brew --prefix llvm@N
  - Windows: actions/cache against C:/Program Files/LLVM

Drop the all-skipped skip list, the OS x compiler product matrix, and
the -DCMAKE_CXX_STANDARD=23 override (project remains C++17 per
CMakeLists.txt). Add concurrency group, 45-minute timeout, and bump
actions/checkout to v6, matching h5cpp/staging.

Closes #7, #8, #10.
…atrix.md

Replace README.md's 6-column build-matrix table with a 9-column table
mirroring h5cpp/staging (GCC 13/14/15, Clang 17/18/19/20, Apple Clang,
MSVC). Cells with no matching matrix entry render the static NA badge.

Add top-level staging-build-matrix.md with the same table, but with
badge URLs pointing at the badges-staging directory so PRs and pushes
to staging surface their own status alongside release.

Update repo references from vargaconsulting/h5cpp-compiler to
vargalabs/h5cpp-compiler. Add the codecov badge URL targeting the
release branch (PR #11 will wire up the actual coverage upload).
@steven-varga steven-varga merged commit df3f6d9 into staging May 15, 2026
5 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant