Make Rust CI cache startup optional in every compilation step #672
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/ci-sccache-20261018"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Rust CI can fail before compilation when Solstice's injected
sccachewrapper times out starting its daemon. Mainbe2ad983request805ee630-5313-4469-976a-bc8c11c774f0hit this onrustc -vV; the native client tests never executed. Existing startup checks were absent from native jobs and, elsewhere, only changed an earlier shell's environment.Source a shared cache guard in every compilation shell, including both native Linux acceptance jobs and the native
.solstice/job.shpath. It probessccache rustc -vVwith a 15-second timeout and 2-second kill grace, sets an emptyRUSTC_WRAPPERon failure (also overriding Cargo config), and allows local compilation for subsequent server I/O errors. Missing sccache or timeout also selects direct compilation. Cache diagnostics are suppressed to avoid exposing credential-bearing URLs. Product/test commands and required receipt checks are unchanged.Validation: eight fault-injection tests cover startup failure, timeout, missing tools, separate-shell reinjection, successful probing and preservation of compiler failure. All 17 workflow jobs parse and every run script passes
sh -n;.solstice/job.shpassesbash -n. A real sccache 0.18.0 probe against an unreachable S3 address fell back in 11 seconds, compiled a tiny offline crate directly, and preserved its deliberate syntax error. This local fault test does not establish Linux acceptance for this PR.Diagnosis: the deployed executor uses Hetzner S3
hel1.your-objectstorage.com, buckettoasty-rust-cache, over Archibald's direct Hetzner route. It does not use home SeaweedFS or the Forgejo ingress fixed by Talos #222. Current authenticated bucket HEAD returned 200; only one matching startup timeout was found among 18 failed Akh jobs since October 17. The failed guest was already removed, so the exact historical daemon/backend cause remains unproven. The pinned 0.8.2 source confirmsSCCACHE_IGNORE_SERVER_IO_ERRORalone does not cover startup failures.Parent merge required. After merge, dispatch CI push-free on the resulting new main SHA and collect authoritative Solstice terminal results plus both native receipts (executed tests, zero ignored). This PR does not make the old
be2ad983run green and does not deploy Ptah.