diff --git a/.gitea/workflows/pr-checks.yml b/.gitea/workflows/pr-checks.yml index 1681efb..a6f5469 100644 --- a/.gitea/workflows/pr-checks.yml +++ b/.gitea/workflows/pr-checks.yml @@ -70,18 +70,17 @@ 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 - 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.