diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 06cd051..f07280c 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -16,9 +16,11 @@ jobs: - arch: x86_64 target: x86_64-unknown-linux-gnu runs-on: ubuntu-latest + sccache_dir: /sccache - arch: aarch64 target: aarch64-unknown-linux-gnu runs-on: aarch64 + sccache_dir: /var/lib/gitea-runner/sccache runs-on: ${{ matrix.runs-on }} @@ -36,6 +38,22 @@ jobs: with: targets: ${{ matrix.target }} + # 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: Test run: cargo test --target ${{ matrix.target }}