diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index d781790..2442e87 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 }} @@ -30,6 +32,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: Ensure audio build deps (libpipewire + clang for native capture) run: | if command -v apt-get >/dev/null; then