workflows: improve Bazel CI caching#134
Open
copybara-service[bot] wants to merge 1 commit intomainfrom
Open
Conversation
e0b9cbd to
420e527
Compare
The Bazel workflows use setup-bazel's built-in disk-cache feature, which includes a hash of all BUILD files in the GitHub Actions cache key. Since Bazel's disk cache is already content-addressed, this hash is redundant: Bazel itself ignores stale entries whose action hashes no longer match. The effect is that the entire disk cache (~258 MB on Linux, ~1.7 GB on Windows) is re-uploaded whenever any BUILD file changes, quickly exhausting GitHub's 10 GB per-repository cache limit and evicting older entries. Replace setup-bazel's disk-cache with a manual actions/cache@v4 step using stable, branch-based keys. Because actions/cache entries are immutable (a matching primary key is never re-uploaded), include the ISO week number in the key so the cache rotates weekly. On a miss, restore-keys prefix matching falls back to the previous week's cache or the main branch's cache, avoiding a fully cold build. See: bazel-contrib/setup-bazel#18 PiperOrigin-RevId: 904309390
420e527 to
6a58b0f
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.
workflows: improve Bazel CI caching
The Bazel workflows use setup-bazel's built-in disk-cache feature,
which includes a hash of all BUILD files in the GitHub Actions cache
key. Since Bazel's disk cache is already content-addressed, this hash
is redundant: Bazel itself ignores stale entries whose action hashes no
longer match. The effect is that the entire disk cache (~258 MB on
Linux, ~1.7 GB on Windows) is re-uploaded whenever any BUILD file
changes, quickly exhausting GitHub's 10 GB per-repository cache limit
and evicting older entries.
Replace setup-bazel's disk-cache with a manual actions/cache@v4 step
using stable, branch-based keys. Because actions/cache entries are
immutable (a matching primary key is never re-uploaded), include the
ISO week number in the key so the cache rotates weekly. On a miss,
restore-keys prefix matching falls back to the previous week's cache
or the main branch's cache, avoiding a fully cold build.
See: bazel-contrib/setup-bazel#18