From cad7552104354b65297c764a38dbd4c6a6a6ea74 Mon Sep 17 00:00:00 2001 From: rob thijssen Date: Sun, 31 May 2026 13:55:18 +0300 Subject: [PATCH] ci: clear sccache env on cuda-check so cargo doesn't try to wrap rustc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI run 255 job 3 (CUDA type-check) fails with: error: could not execute process `*** rustc -vV` (never executed) Caused by: No such file or directory (os error 2) The redacted `***` is `sccache`. The ci.yml workflow-level env block sets `RUSTC_WRAPPER: sccache` because the generic `rust` runner has sccache installed and routes the cache to caveman.kosherinata.internal. The new `cuda-check` job runs on `cuda-13.0` (where nvcc lives), and that runner doesn't carry sccache on PATH — so cargo's first action (`sccache rustc -vV` to probe the compiler version) fails before borrow-check even starts. `build-prerelease.yml`, which uses the same `cuda-13.0` runner for the actual release neuron builds, deliberately does NOT set RUSTC_WRAPPER. That's the pattern this commit applies. Fix: override `RUSTC_WRAPPER` (plus the SCCACHE_* and AWS_* env locally on the job. We lose caching on the cuda-check job (it's borrow-check-only and finishes in a couple minutes anyway), but the gate runs. The job's purpose — fail fast on `#[cfg(feature = "cuda")]` borrowck errors that the default-feature gate misses — is what matters, and that purpose was undermined by the env inheritance. Co-Authored-By: Claude Opus 4.7 --- .gitea/workflows/ci.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index c2cff2a..204a64c 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -105,6 +105,23 @@ jobs: cuda-check: name: CUDA type-check runs-on: cuda-13.0 + # The workflow-level env sets `RUSTC_WRAPPER: sccache` for the + # `rust` runner (where fmt/clippy/test live and sccache is + # installed). The `cuda-13.0` runner doesn't have sccache on + # PATH, so inheriting the wrapper makes cargo bail with + # `could not execute process `sccache rustc -vV` (never executed)` + # before borrow-check even starts. Clear it locally. Also clear + # SCCACHE_* so cargo doesn't try to contact the cache (the + # remote auth headers come from secrets that aren't present on + # this runner either). Lose the cache, keep the gate. + env: + RUSTC_WRAPPER: "" + SCCACHE_BUCKET: "" + SCCACHE_ENDPOINT: "" + SCCACHE_REGION: "" + SCCACHE_S3_USE_SSL: "" + AWS_ACCESS_KEY_ID: "" + AWS_SECRET_ACCESS_KEY: "" steps: - uses: actions/checkout@v4 - name: cargo check --features cuda (with retry)