[chore](trx-rs): add sccache compilation cache
Bake sccache into the SDK image and enable it via RUSTC_WRAPPER in CI and the devcontainer (not repo-wide, so non-SDK builds are unaffected). - container/Containerfile: install the sccache musl binary. - ci.yml: RUSTC_WRAPPER=sccache, CARGO_INCREMENTAL=0, SCCACHE_DIR=/sccache, cache size cap, plus a `sccache --show-stats` step per job. - runner-config.example.yaml: bind-mount /var/cache/sccache into job containers so the cache persists across runs and is shared between jobs. - .devcontainer: enable sccache with a named cache volume. Assisted-By: Claude Code (claude-opus-4) Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
@@ -54,6 +54,22 @@ The `reuse` job stays on the upstream `fsfe/reuse-action` (a Docker action the
|
||||
Docker executor launches as a sibling container) — nothing REUSE-related is
|
||||
baked into the SDK.
|
||||
|
||||
## Compilation cache (sccache)
|
||||
|
||||
The SDK image ships [`sccache`](https://github.com/mozilla/sccache). It is
|
||||
enabled via `RUSTC_WRAPPER=sccache` in CI and the devcontainer (not repo-wide,
|
||||
so plain `cargo` builds outside the SDK are unaffected).
|
||||
|
||||
- **CI** persists the cache on the runner host — create the dir once:
|
||||
`mkdir -p /var/cache/sccache`. It is bind-mounted into each job container at
|
||||
`/sccache` (see `runner-config.example.yaml`), so cache survives across runs
|
||||
and is shared between the lint/test jobs and both projects.
|
||||
- **Devcontainer** uses a named volume (`trx-rs-sccache`).
|
||||
- Check effectiveness with `sccache --show-stats` (the CI jobs print it).
|
||||
|
||||
`CARGO_INCREMENTAL=0` is set wherever sccache is on, since sccache cannot cache
|
||||
incremental artifacts.
|
||||
|
||||
## CI runner (Alpine / OpenRC)
|
||||
|
||||
The runner uses the **Docker executor** (not the host executor): per-job
|
||||
|
||||
Reference in New Issue
Block a user