From 04f628b70e478aa86c7d85778cb3d80e39469b20 Mon Sep 17 00:00:00 2001 From: Austin Schaefer Date: Wed, 16 Sep 2026 16:06:40 +0200 Subject: [PATCH] Give the test job its own scoped target/ cache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit test's own compiled objects are worth reusing across runs — it's the only job needing full codegen, so it can't share anything with the clippy jobs' check-only builds regardless of key. Scoping it to a key the clippy jobs don't touch avoids the contention/collision problem that came from all 5 jobs previously sharing one target/ cache key, and since it excludes feedsignal-web, its target/ stays much smaller than the combined cache removed earlier. Co-Authored-By: Claude Sonnet 5 --- .forgejo/workflows/ci.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 3774cde..16359c7 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -144,6 +144,20 @@ jobs: restore-keys: | cargo-${{ runner.os }}- + # Own key, not shared with the clippy jobs above: this job is the + # only one that needs full codegen (clippy's check-only builds + # produce metadata, not the linkable artifacts `cargo test` needs, + # so there's nothing to share either way), and it never touches + # feedsignal-web, so its target/ stays far smaller than a build + # covering every crate's feature set. + - name: Cache test target directory + uses: actions/cache@v4 + with: + path: target + key: target-test-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + target-test-${{ runner.os }}- + - name: Cache sccache compilation objects uses: actions/cache@v4 with: