Repository navigation
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a standalone GitHub Actions CI workflow to build and test EBTKS across Linux containers (Ubuntu/Fedora) and macOS, including building the required BIC-MNI dependency (libminc) from source and wiring it into the consumer CMake configure via explicit *_DIR flags.
Changes:
- Introduces
.github/workflows/ci.ymlto run configure/build/install/ctest onpushandpull_request. - Builds
libmincfrom thedevelop-1.9.18branch (with fallback) and installs it under/opt/bic-mni. - Adds ccache-based compilation caching across all three OS jobs.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+71
to
+73
| name=$(echo "$dep" | tr '[:lower:]-' '[:upper:]_') | ||
| cfg=$(find "$DEPS_PREFIX" -name "${name}Config.cmake" -print -quit) | ||
| DEP_DIR_FLAGS="${DEP_DIR_FLAGS:-} -D${name}_DIR=$(dirname "$cfg")" |
Comment on lines
+137
to
+139
| name=$(echo "$dep" | tr '[:lower:]-' '[:upper:]_') | ||
| cfg=$(find "$DEPS_PREFIX" -name "${name}Config.cmake" -print -quit) | ||
| DEP_DIR_FLAGS="${DEP_DIR_FLAGS:-} -D${name}_DIR=$(dirname "$cfg")" |
Comment on lines
+197
to
+199
| name=$(echo "$dep" | tr '[:lower:]-' '[:upper:]_') | ||
| cfg=$(find "$DEPS_PREFIX" -name "${name}Config.cmake" -print -quit) | ||
| DEP_DIR_FLAGS="${DEP_DIR_FLAGS:-} -D${name}_DIR=$(dirname "$cfg")" |
Comment on lines
+42
to
+43
| - name: Allow git to read the workspace owned by the runner user | ||
| run: git config --global --add safe.directory '*' |
Comment on lines
+108
to
+109
| - name: Allow git to read the workspace owned by the runner user | ||
| run: git config --global --add safe.directory '*' |
gdevenyi
force-pushed
the
ci-workflow
branch
2 times, most recently
from
July 16, 2026 21:36
98be62f to
c6ba392
Compare
Configure, build, install and run the test suite on ubuntu:24.04 and fedora:44 containers plus macOS, for every push and pull request. BIC-MNI dependencies are built from source from their develop-1.9.18 branches, matching what the minc-toolkit-v2 superbuild tracks. Mirrors the superbuild CI in minc-toolkit-v2. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011nEnygr1q87PepYiJobEGW
This was referenced Jul 16, 2026
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
Adds
.github/workflows/ci.yml: a standalone build + test workflow, so EBTKS is verified on its own rather than only as part of the minc-toolkit-v2 superbuild.Part of a series adding standalone CI to the BIC-MNI submodule repos (see Context). EBTKS is the happy case — it needed no source changes at all, which is not true of its siblings.
What the workflow does
On every branch push and PR, on three platforms:
each job: build libminc from source → configure + build + install EBTKS → run the ctest suite. Mirrors the superbuild CI in minc-toolkit-v2 (same containers, ccache, concurrency cancellation, least-privilege permissions).
Notes on two choices
Why libminc is built from source, rather than installed from a package: it tracks
develop-1.9.18, the branch the superbuild pins, so CI tests the combination that actually ships. The workflow falls back to the default branch if that branch is absent.Why
LIBMINC_DIRis passed explicitly: libminc installsLIBMINCConfig.cmakeinto<prefix>/lib/cmake/, which is not one of the locationsfind_packagesearches underCMAKE_PREFIX_PATH(it expects<prefix>/lib/cmake/<name>/). Without the explicit hint,FIND_PACKAGE(LIBMINC REQUIRED)fails:The workflow locates the installed config and passes
-DLIBMINC_DIR=, which is the same thing the superbuild does (-DLIBMINC_DIR:PATH=...in itsBuild*.cmakemodules).Validation
All 3 jobs green: https://github.com/gdevenyi/EBTKS/actions/runs/29537223797
This run builds libminc from BIC-MNI/develop-1.9.18 as it is today — no dependency on any pending PR. Unlike the other repos in this series, EBTKS builds and tests cleanly against an installed libminc as-is.
Context
Part of a series adding standalone build+test CI to the BIC-MNI submodule repos, mirroring the superbuild CI in minc-toolkit-v2. Sibling PRs carry source fixes for bugs their CI exposed — problems the superbuild masks by staging its own dependencies and compiling from the source tree. Related: BIC-MNI/libminc#150 (the keystone: makes the installed libminc package usable outside the superbuild), BIC-MNI/arguments#2.
🤖 Generated with Claude Code
https://claude.ai/code/session_011nEnygr1q87PepYiJobEGW