ci(pr-checks): cache cargo with rust-cache so the cache stops growing
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 9m21s

actions/cache restored the previous target/ through restore-keys and
re-saved all of it under every new Cargo.lock hash, so each entry carried
every older build and the runner's cache grew without bound.
Swatinem/rust-cache strips the crate's own and stale artifacts before
saving and saves only on a miss.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
2026-11-02 11:21:00 -06:00
parent a61d7794d9
commit 34c517d21a

View File

@@ -69,18 +69,17 @@ jobs:
rustup target add x86_64-pc-windows-gnu
cargo --version && cargo fmt --version && cargo clippy --version
# Keyed on Cargo.lock: dependency builds are reused until a dep actually
# changes. A cache miss only makes the run slower, never wrong.
- name: Cache cargo registry and build dir
uses: actions/cache@v4
# Dependency builds are reused until a dep actually changes; a cache miss
# only makes the run slower, never wrong. rust-cache rather than a plain
# actions/cache of target/: it strips this crate's own artifacts and
# anything stale before saving, and saves only on a miss. The plain cache
# restored the previous target/ and re-saved all of it under every new
# Cargo.lock, so each entry carried every older build and the runner's
# cache grew without bound.
- name: Cache cargo registry and dependency builds
uses: Swatinem/rust-cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
sidecar/target
key: ${{ runner.os }}-cargo-${{ hashFiles('sidecar/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
workspaces: sidecar -> target
# Cheapest gate first — parses only, no compile, so a formatting slip fails
# in seconds instead of after a full build.