From da74a840096e333a533d9db74d9c1af28e8410ce Mon Sep 17 00:00:00 2001 From: Jake Date: Tue, 21 Apr 2026 15:42:12 +0100 Subject: [PATCH] ci: point Swatinem/rust-cache at the real workspace root MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both workflows had `workspaces: src-tauri -> target`, which tells rust-cache the workspace lives at src-tauri/ and its target dir is src-tauri/target. Neither is true: the workspace is defined at the repo root (Cargo.toml:1–3 — members = ["src-tauri", "crates/*"]), so cargo walks up and puts artifacts at ./target, not ./src-tauri/target. Result: the cache action was saving an empty (or wrong) directory on every run. Every CI run on every OS effectively started from a cold build, which is the actual reason the Windows job appeared to compile sqlx from scratch every push — it was compiling sqlx from scratch every push. Point the cache at the real workspace root. While here, drop the `working-directory: src-tauri` on the cargo check step so the command runs from the workspace root too; cargo finds the same workspace either way, but running from root is consistent with the cache's view. Expected impact: Windows check job drops from ~15–25 min cold-every-time to ~2–3 min on warm runs, matching Linux/macOS behaviour. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/build.yml | 4 +++- .github/workflows/check.yml | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f132fc3..0472101 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -99,10 +99,12 @@ jobs: - name: Install Rust uses: dtolnay/rust-toolchain@stable + # Workspace is at the repo root; target dir is ./target (not + # src-tauri/target). See note in check.yml for details. - name: Cache Rust uses: Swatinem/rust-cache@v2 with: - workspaces: src-tauri -> target + workspaces: . shared-key: kon-build-${{ matrix.os }} - name: Install JS deps diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 7a1607b..834464f 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -72,14 +72,18 @@ jobs: # Cache the Cargo target dir + registry per OS so the heavy # whisper-rs-sys C++ build only happens on a clean cache. + # The workspace root is the repo root (see //Cargo.toml), so target/ + # lives at ./target — NOT src-tauri/target. Pointing the cache at + # src-tauri/target produced silent cache misses on every run and was + # the real reason Windows check times felt like they compiled sqlx + # from scratch every time. Use the repo root as the workspace hint. - name: Cache Rust artifacts uses: Swatinem/rust-cache@v2 with: - workspaces: src-tauri -> target + workspaces: . shared-key: kon-${{ matrix.os }} - name: cargo check (workspace) - working-directory: src-tauri run: cargo check --workspace --all-targets frontend: