Custom GitHub Actions runner image for cachekit-io CI/CD.
Bakes in build tooling that doesn't change per-job, cutting minutes off every CI run.
| Tool | Purpose |
|---|---|
build-essential, pkg-config, libssl-dev |
System build deps (C linker, OpenSSL headers) |
uv |
Python package manager (eliminates setup-uv action) |
Rust stable + rustfmt, clippy |
Rust toolchain (eliminates dtolnay/rust-toolchain) |
| Python 3.9–3.14 | Pre-installed via uv (eliminates uv python install) |
uv sync— project-specific Python depsactions/cache— Rust target dir, Python venv (change per-commit)
In your workflow:
runs-on: cachekit # ARC runner scale set labelIn values-cachekit-runner-set.yaml:
containers:
- name: runner
image: ghcr.io/cachekit-io/runner:latestPush a tag to build and publish:
git tag v1.0.0
git push origin v1.0.0Image is pushed to ghcr.io/cachekit-io/runner.
When base tools need updating (new Rust stable, new Python minor):
- Update
Dockerfile - Tag a new version
- Update the image reference in
values-cachekit-runner-set.yaml helm upgradethe runner scale set