ci: speed up pipelines with shared rust-cache - #488
Merged
Conversation
Greptile SummaryThe PR streamlines CI and packaging workflows:
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| .github/workflows/ci.yml | Adds shared cache policy and concurrency cancellation, removes redundant checking, and retains all-feature cargo-deny coverage. |
| .github/workflows/build.yml | Adds platform-specific release caches and Homebrew download caching without changing packaging gates. |
| .github/workflows/release-plz.yml | Aligns the Rust environment with CI so both release-plz jobs can restore the canonical Linux debug cache. |
| .github/workflows/release.yml | Aligns the publish job’s Rust environment and restores the CI-owned Linux debug cache for the manifest generator. |
Reviews (3): Last reviewed commit: "ci: put cargo-deny --all-features before..." | Re-trigger Greptile
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.
Summary
Cut CI wall time and machine-minutes by fixing rust-cache thrash (~21 GB / 22 entries, intermittent Windows/MSRV misses), cancelling superseded CI runs, dropping a redundant Linux compile job, and enabling Windows release caching for labeled PR packaging.
Measured baseline (live runs + local sim): quiet thrashy PRs ~8–10 min wall (Windows clippy cold ~5–6 min); push storms worse due to no CI concurrency cancel. Expected after warm master caches: ~4–6 min wall on thrashy days, ~30–50% fewer machine-minutes; quiet already-warm PRs gain little wall time.
Changes
ci.ymlcancel-in-progress: true(CI never signs/publishes).prefix-key: v1-rustto age out thrashingv0-rustmulti-GB entries.shared-keygroups:linux-stable-debug(clippy / test-linux / docs-hid),msrv-debug,macos-stable-debug,windows-stable-debug.save-ifmaster/main only — PRs restore base-branch caches without writing new keys under the 10 GB soft limit.check-linux— stablecargo clippy --workspace --all-targetsalready subsumescargo check(same rationale asclippy-windows). MSRV remains via the 1.96 matrix.RUSTDOCFLAGSto step env so it can share the Linux debug cache key.taiki-e/install-action+cargo deny check(faster than full action bootstrap).build.ymlmacos-stable-release,linux-stable-release).windows-stable-release-${{ matrix.arch }}) — the old “tag-only, no cache” comment was outdated; this workflow also runs onneeds: buildPRs and dispatch.brew install librsvg create-dmg.should-build/needs: buildlabel gate.release-plz.yml/release.ymllinux-stable-debugdeps withsave-if: false(CI master is the canonical writer).Explicit non-goals
Testing
python3 -c "import yaml; …"— all four workflows parse.v0-rust.v1-rustkeys on master; PR runs restore once master has saved.Expected impact