Caching
How the hosted Actions cache and dependency mirrors speed up jobs on Tenki Runners, with zero workflow changes.
Tenki Runners come with two layers of caching, both enabled by default with no workflow changes: a hosted GitHub Actions cache and dependency mirrors that sit close to the runners.
Actions cache
Tenki hosts a drop-in replacement for the GitHub Actions cache. actions/cache, setup-node's cache: option, and anything else built on the Actions cache API work unchanged. The runner VM is already configured to talk to your workspace's cache endpoint, including for jobs that run in a container:.
- uses: actions/cache@v4
with:
path: ~/.npm
key: npm-${{ hashFiles('package-lock.json') }}Storage and eviction
| Plan | Included cache storage |
|---|---|
| Starter | 5 GB |
| Team | 10 GB |
Extra storage is $0.20 per GB/month; see Pricing. When a workspace is over its quota, the least-recently-used entries are evicted first. Cache entries expire after 7 days, the same window GitHub's hosted cache uses.
The cache can be switched off per workspace in the dashboard settings.
Dependency mirrors
Downloads from common package registries are cached transparently on Tenki's network, so repeat installs don't cross the public internet:
- npm
- APT (Ubuntu packages)
- Go modules
- Cargo (crates.io sparse index)
- Maven Central and the Gradle Plugin Portal
- CocoaPods and Swift Package Manager
- Docker Hub (pull-through mirror)
You don't configure anything: Tenki points the runner's tooling at the mirrors, and cache misses fall through to the upstream registry.
Docker images
The Docker daemon and BuildKit (docker buildx) on Linux runners are pre-configured to pull public images through the Docker Hub mirror, so FROM ubuntu:24.04 and docker pull hit a warm local copy after the first use. The mirror also avoids Docker Hub's anonymous pull rate limits.
The mirror does not cache build layers between jobs. For layer reuse across runs, use registry-based caching (--cache-from / --cache-to) or store layers with actions/cache, exactly as you would on GitHub-hosted runners.