COMP: Backport CI infrastructure (ccache, GHA cache, pixi CI tasks, Azure/macOS-arm caching) to release-5.4#6334
Open
hjmjohnson wants to merge 5 commits into
Open
COMP: Backport CI infrastructure (ccache, GHA cache, pixi CI tasks, Azure/macOS-arm caching) to release-5.4#6334hjmjohnson wants to merge 5 commits into
hjmjohnson wants to merge 5 commits into
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
a50c9c2 to
ee3567e
Compare
Backport CMake/itkCCacheSupport.cmake and the configure-ci/build-ci/test-ci pixi tasks so ITK_USE_CCACHE drives the compiler launchers on release-5.4. Remote-module enables from main's configure-ci are omitted (not present on release-5.4).
Add cleanup-pr-caches, cleanup-stale-caches-nightly, and populate-externaldata-cache; triggers adapted to release* branches and ExternalData pinned to 5.4.5.
Invoke configure-ci/build-ci/test-ci and add actions/cache for the ccache directory (release-5.4-scoped key). Matrix and Python/OS versions unchanged.
Backport CCACHE_* env vars, ccache install, and Pipeline.Workspace cache to the gcc/clang Azure jobs with release-5.4-scoped cache keys. No Python/OS/C++ standard changes.
Wire ccache into both macos-arm.yml jobs (install, actions/cache with rel54-scoped keys, CMAKE_*_COMPILER_LAUNCHER=ccache in dashboard_cache), mirroring main's arm.yml. Release config; no OS/Python/coverage changes.
ee3567e to
25dbd45
Compare
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.
Backport CI-infrastructure improvements from
maintorelease-5.4: ccache support, GitHub Actions cache management, pixi*-citasks, and ccache caching for the Azure + macOS-arm pipelines. No toolchain/Python/OS/C++-standard version bumps — only caching/infrastructure. Draft: opened to run thepull_requestCI (pixi / macOS-arm / Azure), which a branch push alone does not trigger.Commits (one COMP: per category)
CMake/itkCCacheSupport.cmake(verbatim frommain) +include(itkCCacheSupport)inCMakeLists.txt; pixiconfigure-ci/build-ci/test-ci/build-external-data-citasks;ccache>=4dependency; regeneratedpixi.lock.configure-cisetsCMAKE_{C,CXX}_COMPILER_LAUNCHER=ccache+ITK_USE_CCACHE=ON.cleanup-pr-caches.yml,cleanup-stale-caches-nightly.yml,populate-externaldata-cache.yml+ backportedUtilities/Maintenance/PrefetchCIDContentLinks.py(wasmain-only; release-5.4 uses.cidcontent links).*-citasks +actions/cachefor ccache (ccache-rel54-*keys) +CCACHE_*tuning env.CCACHE_*env + ccache install +Cache@2withrel54-scoped keys across the 4 gcc/clang jobs (Linux, LinuxPython, MacOS, MacOSPython). Windows/MSVC untouched (matchesmain).macos-arm.ymljobs, mirroringmain'sarm.yml(rel54-scoped keys).Local validation
pixi run build-ci(macOS-arm64): clean build, 5897/5897 targets, ccache 100% cacheable with hits climbing on warm runs.configure-ciconfirmed wiringLAUNCHER = ccacheintobuild.ninja.Release/MinSizeRel(no-g) — noRelWithDebInfo+ccache interaction. Mirrorsmain's "Release not RelWithDebInfo" CI fix.clang-format linter✅,Spell Checking✅.Notes for reviewers
pixi.lockdiff is large but it is format churn, not dependency churn: regenerating with pixi 0.68.0 to addccachebumped the lockfile format v5 → v7 (now matchingmain). The only real dependency added isccache 4.13.6across all 5 platforms.configure-ciomitsmain's-DModule_*remote-module list — those modules are ingested onmainand not present onrelease-5.4; including them would break configure.LinuxLegacyRemovedDebugCxx20rename + C++20 /de_DE.UTF-8locale. The release-5.4LinuxLegacyRemovedjob staysMinSizeRel(already no-g, already ccache-friendly).