ci: share sccache setup across workflows#811
Open
abnobdoss wants to merge 1 commit into
Open
Conversation
67d0a82 to
996a694
Compare
4f1e4ee to
155e484
Compare
155e484 to
493a9e1
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.
What
Add two composite actions for sccache:
.github/actions/setup-sccachesets the sccache environment, restores the cache, resolves the MSVC compiler version on Windows, and startsmozilla-actions/sccache-action..github/actions/save-sccacheshows sccache stats for every run and saves the cache only on main branch runs.The Test, SQL Catalog, sanitizer, C++ linter, and AWS workflows now pass only their cache key prefix at each call site.
This is part of the CI work discussed in #799.
Notes
The existing cache key shapes are preserved for the current CMake workflow legs. The Meson Windows leg now also gets the MSVC-version key suffix, matching the other Windows sccache legs and avoids cache misses after runner image compiler updates.
The MSVC version source also changes for the existing Windows legs (test and SQL catalog): the inline
cl.exebanner parse is replaced by readingVCToolsVersion.default.txtvia vswhere, which is more reliable and does not requirecl.exeon PATH. This produces a different version format (e.g.14.44.35217vs19.44.35217.1), so all Windows caches will miss once and reseed on the first post-merge main run.Third-party actions stay pinned inside composite
action.ymlfiles, which are covered by the ASF allowlist checker glob.Validation
.github/**, so this PR does not exercise that workflow until a source-touching run or post-merge.