ci(pr-checks): cache cargo with rust-cache so the cache stops growing #44

Merged
whitlocktech merged 1 commits from chore/ci-self-cleanup into main 2026-11-04 06:10:29 -06:00

View File

@@ -89,19 +89,16 @@ jobs:
rustup component add rustfmt clippy
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
# 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
if: ${{ steps.detect.outputs.crate == 'true' }}
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
uses: Swatinem/rust-cache@v2
# Cheapest gate first — parses only, no compile, so a formatting slip
# fails in seconds instead of after a full build.