[ci] Update ROOT workflow to standard upgrade process with cached incremental builds.#955
Open
aaronj0 wants to merge 4 commits into
Open
[ci] Update ROOT workflow to standard upgrade process with cached incremental builds.#955aaronj0 wants to merge 4 commits into
aaronj0 wants to merge 4 commits into
Conversation
…lone builds
When CppInterOp is consumed via add_subdirectory() in an external project like ROOT, we previously had to carry two
small CMake patches on top of upstream:
1. clangCppInterOp must be BUILDTREE_ONLY so AddLLVM does
not register/export it, ROOT folds the symbols into
libCling rather than shipping a separate library.
2. The standalone install() rules for the cmake config, headers,
tools and build-tree include/ should not be default behaviour, ROOT installs
through libCling's own layout
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #955 +/- ##
=======================================
Coverage 81.73% 81.73%
=======================================
Files 15 15
Lines 4759 4759
=======================================
Hits 3890 3890
Misses 869 869 🚀 New features to boost your workflow:
|
…remental builds. Updates `root.yml` to mirror manual upgrade process we follow when bumping the CppInterOp version in ROOT 1. Clone ROOT master (cached, `git fetch`'d incrementally on cache hit). 2. Replace `interpreter/CppInterOp` with the current PR's CppInterOp HEAD 3. Strip the few files that don't belong in the embedded copy 4. Run a classic ROOT build with LLVM/Cling compiled from source (cached). 5. Run ROOT's `ctest` suite against that build. Most platform independant breaking changes in the API or build system CppInterOp introduces in ROOT will show up as a configure, compile, or test failure.
f5e93a2 to
c2852b6
Compare
vgvassilev
reviewed
May 1, 2026
vgvassilev
reviewed
May 1, 2026
Contributor
|
@aaronj0, perhaps we should explore this approach on the root side: set(CMAKE_SKIP_INSTALL_RULES TRUE)
add_subdirectory(CppInterOp)
set(CMAKE_SKIP_INSTALL_RULES FALSE) # restore for ROOT's own installs that follow |
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.
Updates
root.ymlto mirror manual upgrade process we follow when bumpingthe CppInterOp version in ROOT
git fetch'd incrementally on cache hit).interpreter/CppInterOpwith the current PR's CppInterOp HEADctestsuite against that build.Most platform independant breaking changes in the API or build system CppInterOp
introduces in ROOT will show up as a configure, compile, or test failure.
subset of these changes are from #954 which this workflow currently uses to avoid temporary patches.