chore: promote staging to staging-promote/158f5f7d-24597161022 (2026-04-18 05:31 UTC)#2615
Open
ironclaw-ci[bot] wants to merge 2 commits intostaging-promote/158f5f7d-24597161022from
Open
Conversation
* ci: share rust-cache across clippy matrix legs The three clippy matrix entries (all-features, default, libsql-only) each had a distinct cache key, so each leg maintained its own multi-GB target/ in the GitHub Actions cache. GHA caps repo cache at 10 GB and evicts LRU, so these three near-duplicates crowd out other useful entries and forced each leg to re-warm after eviction. Switch to shared-key: clippy for the Linux matrix and shared-key: clippy-windows for the Windows matrix. Whichever leg finishes (and saves) first wins the slot; the other two restore from that cache on the next run. Because --all-features builds a superset of the artifacts needed by default / libsql-only, a shared cache is incrementally useful for every leg even when the saver wasn't all-features. This is independent of and complementary to #2609 (save-if gating); together they reduce total cache churn per clippy job to near-zero wall clock on PR runs after the first main/staging push refreshes the slot. * ci(clippy): run only all-features on push Adds if: github.event_name == 'pull_request' || matrix.name == 'all-features' to the Linux clippy matrix so push events (main/staging) run only the all-features leg. This pins the saver for the new shared-key slot: --all-features builds a superset of the artifacts needed by default and libsql-only, so when those PR legs cache-restore they always start from the richest possible baseline rather than whichever leg happened to win a three-way race. PRs still run all three legs, so lint coverage is unchanged on the path that matters (before merge). Push events are only exercised after a PR has already passed, so the redundant two legs were just warming a cache anyway.
Swatinem/rust-cache was saving the multi-GB target/ directory at the end of every CI job — including PR jobs that will never be read from again by a different PR. The post-cache step was adding 5+ minutes of wall clock to each Clippy and Tests matrix leg, on top of the actual compile time. This change: - Adds save-if gating to every rust-cache step in code_style.yml and test.yml so the cache is only written when github.ref is refs/heads/main or refs/heads/staging. PR jobs still restore, they just skip the upload. - Adds push triggers on main and staging to code_style.yml so those pushes actually exercise each matrix leg and refresh the cache entry that PRs will restore from next. Without this, the cache would never be refreshed after the one-time manual warm-up. - Gates no-panics on pull_request events since it diffs against github.event.pull_request.base.sha, which is empty on push events. Expected impact on PR wall clock: ~5 minutes saved per Clippy / Tests matrix leg, no change to cache hit rate for subsequent PRs.
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.
Auto-promotion from staging CI
Batch range:
a53eac5c2dec6b6cd5c08189086093fde64aa9cb..b93098d48f6b4aa14449a810ca8f6c64581c28bbPromotion branch:
staging-promote/b93098d4-24597925921Base:
staging-promote/158f5f7d-24597161022Triggered by: Staging CI batch at 2026-04-18 05:31 UTC
Commits in this batch (101):
ironclaw profile listsubcommand (feat(cli): addironclaw profile listsubcommand #2288)Current commits in this promotion (2)
Current base:
staging-promote/158f5f7d-24597161022Current head:
staging-promote/b93098d4-24597925921Current range:
origin/staging-promote/158f5f7d-24597161022..origin/staging-promote/b93098d4-24597925921Auto-updated by staging promotion metadata workflow
Waiting for gates:
Auto-created by staging-ci workflow