[#12]:svarga:ci, align CI matrix with h5cpp staging and replace HDF5 dep with LLVM toolchain#15
Merged
Conversation
…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).
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
include:matrix in h5cpp-compiler.libhdf5-devinstall with the LLVM/Clang dev libs the tool actually links against.README.mdbuild-matrix table to mirror h5cpp/staging's 9-column layout and addstaging-build-matrix.mdcompanion.Closes #7, #8, #10, #12.
What changed
.github/workflows/ci.ymlinclude:matrix. LLVM dev libs installed per cell, cached. No HDF5. No-DCMAKE_CXX_STANDARD=23override. Addsconcurrencygroup,timeout-minutes: 45,actions/checkout@v6.CMakeLists.txt-fno-rttiand the Release-slinker flag onNOT MSVC. AddCMAKE_PREFIX_PATHhint forC:/Program Files/LLVMon Windows. Lifted from branch10-windows-ci.README.mdvargaconsultingtovargalabs. Add codecov badge URL.staging-build-matrix.mdbadges-staging/. Mirrors h5cpp/staging's companion file.Matrix
Each matrix cell carries an explicit
llvm-versionfield. 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
awalsh128/cache-apt-pkgs-action@v1llvm-N-dev libclang-N-dev clang-N cmake ninja-build; key derives from(os, llvm-version)actions/cache@v4/opt/homebrew/opt/llvm@N,/opt/homebrew/Cellar/llvm@N; keymacos-llvm-N-v1actions/cache@v4C:\Program Files\LLVM; keywindows-llvm-N-v1Test plan
cmake configure, build,ctest(no fixtures yet —ctest --no-tests=ignoretolerates an empty test surface; test, add transform fixture pack for coverage #13 will populate it).libhdf5-devinstall in any cell.Generate SVG Badgesjob runs after build matrix completes.Follow-ups
ctestso the matrix has a meaningful test step.Conventions
staging. ✓staging. ✓fix,ci,docs), all[#12]:svarga:....