CI: sccache-backed compiled-crate cache (persistent, replaces the dead cache service)

x86_64 uses /sccache (host dir bind-mounted into the job container by the
runner config); aarch64 on the klokka host uses a runner-owned dir. Both
persist across releases via RUSTC_WRAPPER=sccache.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GLUwWE2KmFPzhKaf67tWbx
This commit is contained in:
Bendik Aagaard Lynghaug
2026-09-13 12:37:53 +02:00
co-authored by Claude Opus 4.8
parent 260f2791d0
commit 9de5d7e2d9
+18
View File
@@ -15,8 +15,10 @@ jobs:
include: include:
- arch: x86_64 - arch: x86_64
runs-on: ubuntu-latest runs-on: ubuntu-latest
sccache_dir: /sccache
- arch: aarch64 - arch: aarch64
runs-on: aarch64 runs-on: aarch64
sccache_dir: /var/lib/gitea-runner/sccache
runs-on: ${{ matrix.runs-on }} runs-on: ${{ matrix.runs-on }}
@@ -28,6 +30,22 @@ jobs:
with: with:
targets: wasm32-unknown-unknown targets: wasm32-unknown-unknown
# Compiled-crate cache via sccache. x86_64 uses /sccache (a persistent
# host dir bind-mounted into the job container by the runner config);
# aarch64 runs on the klokka host and uses a runner-owned dir. Both
# persist across releases, unlike the (unreachable) Gitea cache service.
- name: Set up sccache
run: |
echo "RUSTC_WRAPPER=sccache" >> "$GITHUB_ENV"
echo "SCCACHE_DIR=${{ matrix.sccache_dir }}" >> "$GITHUB_ENV"
mkdir -p "${{ matrix.sccache_dir }}"
if ! command -v sccache >/dev/null 2>&1; then
V=0.8.2
curl -sSL "https://github.com/mozilla/sccache/releases/download/v${V}/sccache-v${V}-x86_64-unknown-linux-musl.tar.gz" | tar -xz
sudo install -m0755 "sccache-v${V}-x86_64-unknown-linux-musl/sccache" /usr/local/bin/sccache
fi
sccache --version
- name: Install cargo-binstall - name: Install cargo-binstall
run: | run: |
command -v cargo-binstall || \ command -v cargo-binstall || \