From 5d1a418fe7de3886780d05c4076e59144e0b2bc5 Mon Sep 17 00:00:00 2001 From: Jacob Magar Date: Fri, 7 Aug 2026 13:41:08 -0400 Subject: [PATCH] perf(ci): drop the redundant target cache from the Test job MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Test job restored and saved a 2.7 GB `target/` directory through actions/cache on every run: 95s to pull it down at ~47 MB/s and 80s to push it back, so 175s of the job's 19 minutes was cache transfer. That predates kache. kache is now the compiler cache and reported a 96.4% hit rate on the same run, served from a local 80 GiB store by reflink — so the work the target cache exists to avoid is already avoided, far more cheaply than a 2.7 GB round trip over the network. Also raise the job's timeout from 30 to 45 minutes. It is not a fix for anything, it is a guard: this job hit exactly 30 minutes on the first run of soma#330 with every test passing and roughly three minutes of work left, so it was already brushing the limit. If dropping the cache turns out to cost more than it saved, the job should get slower rather than go red. Measurable either way: the Test job was 19m02s with the cache. MCP Smoke caches `target/` the same way and is deliberately left alone, so it stays a control for this change. --- .github/workflows/ci.yml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8a9958ac..699d1fc6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -146,22 +146,13 @@ jobs: needs: [changes] if: ${{ needs.changes.outputs.rust == 'true' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} runs-on: ci-pool-rust - timeout-minutes: 30 + timeout-minutes: 45 steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Install Rust and kache uses: ./.github/actions/setup-rust-kache - # CUSTOMIZE: Change cache key prefix from "soma" to your repo name. - - name: Cache Cargo - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 - with: - path: | - target - key: ${{ github.repository }}-test-${{ hashFiles('**/Cargo.lock') }} - restore-keys: ${{ github.repository }}-test- - - name: Install cargo-nextest uses: taiki-e/install-action@95cc2373c3f00275e315c306e56fef1c7a8854c0 # cargo-nextest