Fastest GitHub Actions cache.
A 4 GB file saved with actions/cache and restored right away on 9 providers, 2 to 12 vCPU,
x64 and arm64. The runner is half of it: where actions/cache goes is the other half.
How this shows up in real builds
4 GB restore per provider
Each provider's fastest ranked result (3+ runs) at any sizeEach provider's fastest ranked 2 vCPU resultEach provider's fastest ranked 4 vCPU resultEach provider's fastest ranked 8 vCPU result, any action; RunsOn once per storage (EBS, local NVMe, tmpfs: the Storage pill); faded rows are provisional. Right: how long the save step took.
Fastest x64 restore: RunsOn r8a.xlarge · tmpfs (7s), ahead of RunsOn m8a.2xlarge · EBS (8s).
Fastest arm64 restore: RunsOn m9g.xlarge · tmpfs (8s), ahead of RunsOn m9gd.2xlarge · NVMe (11s).
Fastest x64 2 vCPU restore: RunsOn r8a.large · tmpfs (10s), ahead of Avrea (15s).
Fastest arm64 2 vCPU restore: RunsOn r9g.large · tmpfs (11s), ahead of Avrea (12s).
Fastest x64 4 vCPU restore: RunsOn r8a.xlarge · tmpfs (7s), ahead of RunsOn m8azn.xlarge · EBS (9s).
Fastest arm64 4 vCPU restore: RunsOn m9g.xlarge · tmpfs (8s), ahead of Avrea (12s).
Fastest x64 8 vCPU restore: RunsOn m8a.2xlarge · tmpfs (7s), ahead of RunsOn m8a.2xlarge · EBS (8s).
Fastest arm64 8 vCPU restore: RunsOn m9g.2xlarge · tmpfs (8s), ahead of RunsOn m9gd.2xlarge · NVMe (11s).
Restore, job to job
Each provider's fastest machineEach provider's fastest 2 vCPU machineEach provider's fastest 4 vCPU machineEach provider's fastest 8 vCPU machine with two or more jobs (it may differ from the machine on the chart above). Every dot is one job.
- AWS CodeBuild 8 vCPU · 16 GB spread 7.1% (p10–p90) around a p50 of 34s, min 33s, max 37s, 5 samples
- Ubicloud 8 vCPU · 32 GB p50 1m 02s, min 54s, max 1m 06s, 4 samples, not ranked
- Avrea 8 vCPU · 32 GB spread 21.5% (p10–p90) around a p50 of 13s, min 13s, max 17s, 5 samples
- Warpbuild 2 vCPU · 8 GB spread 24.4% (p10–p90) around a p50 of 27s, min 23s, max 32s, 5 samples
- Namespace 8 vCPU · 16 GB spread 26.3% (p10–p90) around a p50 of 19s, min 19s, max 26s, 5 samples
- RunsOn 12 vCPU · 48 GB spread 35.6% (p10–p90) around a p50 of 9s, min 9s, max 13s, 5 samples
- Blacksmith 8 vCPU · 32 GB spread 36% (p10–p90) around a p50 of 15s, min 12s, max 19s, 5 samples
- GitHub 8 vCPU · 32 GB spread 45.9% (p10–p90) around a p50 of 27s, min 20s, max 38s, 5 samples
- StarSling 8 vCPU · 32 GB spread 186.2% (p10–p90) around a p50 of 26s, min 19s, max 1m 17s, 5 samples
- RunsOn 8 vCPU · 32 GB spread 7.7% (p10–p90) around a p50 of 13s, min 13s, max 14s, 5 samples
- Avrea 8 vCPU · 32 GB spread 10.9% (p10–p90) around a p50 of 11s, min 11s, max 13s, 5 samples
- Warpbuild 8 vCPU · 32 GB spread 11.6% (p10–p90) around a p50 of 19s, min 18s, max 21s, 5 samples
- GitHub 4 vCPU · 16 GB spread 15.2% (p10–p90) around a p50 of 29s, min 26s, max 32s, 5 samples
- Ubicloud 4 vCPU · 16 GB p50 58s, min 57s, max 1m 09s, 3 samples, not ranked
- Blacksmith 4 vCPU · 16 GB spread 28.1% (p10–p90) around a p50 of 32s, min 31s, max 44s, 5 samples
- Namespace 2 vCPU · 8 GB p50 18s, min 18s, max 27s, 3 samples, not ranked
- RunsOn 2 vCPU · 16 GB spread 8.4% (p10–p90) around a p50 of 19s, min 18s, max 20s, 5 samples
- Ubicloud 2 vCPU · 8 GB spread 18.8% (p10–p90) around a p50 of 1m 08s, min 1m 05s, max 1m 23s, 5 samples
- Avrea 2 vCPU · 8 GB spread 21.3% (p10–p90) around a p50 of 15s, min 12s, max 16s, 5 samples
- Warpbuild 2 vCPU · 8 GB spread 24.4% (p10–p90) around a p50 of 27s, min 23s, max 32s, 5 samples
- AWS CodeBuild 2 vCPU · 3 GB spread 30.6% (p10–p90) around a p50 of 51s, min 50s, max 1m 14s, 5 samples
- Blacksmith 2 vCPU · 8 GB spread 31.8% (p10–p90) around a p50 of 17s, min 12s, max 19s, 5 samples
- Namespace 2 vCPU · 8 GB spread 41.9% (p10–p90) around a p50 of 21s, min 18s, max 32s, 5 samples
- GitHub 2 vCPU · 8 GB spread 70.4% (p10–p90) around a p50 of 46s, min 40s, max 1m 18s, 5 samples
- Avrea 2 vCPU · 8 GB spread 13.3% (p10–p90) around a p50 of 12s, min 11s, max 13s, 5 samples
- Warpbuild 2 vCPU · 8 GB spread 13.6% (p10–p90) around a p50 of 28s, min 26s, max 31s, 5 samples
- GitHub 2 vCPU · 8 GB spread 15.4% (p10–p90) around a p50 of 52s, min 48s, max 1m 00s, 5 samples
- RunsOn 2 vCPU · 8 GB spread 17.9% (p10–p90) around a p50 of 29s, min 28s, max 36s, 5 samples
- Ubicloud 2 vCPU · 8 GB p50 1m 11s, min 59s, max 1m 22s, 4 samples, not ranked
- Blacksmith 2 vCPU · 6 GB spread 25.1% (p10–p90) around a p50 of 35s, min 33s, max 45s, 5 samples
- Namespace 2 vCPU · 8 GB p50 18s, min 18s, max 27s, 3 samples, not ranked
- RunsOn 4 vCPU · 16 GB spread 8.9% (p10–p90) around a p50 of 18s, min 17s, max 19s, 5 samples
- Ubicloud 4 vCPU · 16 GB spread 11.8% (p10–p90) around a p50 of 1m 06s, min 1m 01s, max 1m 12s, 5 samples
- AWS CodeBuild 4 vCPU · 8 GB spread 13.1% (p10–p90) around a p50 of 35s, min 33s, max 40s, 5 samples
- Avrea 4 vCPU · 16 GB spread 15.7% (p10–p90) around a p50 of 14s, min 13s, max 16s, 5 samples
- Namespace 4 vCPU · 8 GB spread 31% (p10–p90) around a p50 of 20s, min 17s, max 26s, 5 samples
- GitHub 4 vCPU · 16 GB spread 39.4% (p10–p90) around a p50 of 34s, min 25s, max 46s, 5 samples
- Warpbuild 4 vCPU · 16 GB spread 44.3% (p10–p90) around a p50 of 28s, min 26s, max 42s, 5 samples
- Blacksmith 4 vCPU · 16 GB spread 46.7% (p10–p90) around a p50 of 15s, min 13s, max 22s, 5 samples
- StarSling 4 vCPU · 16 GB spread 63.1% (p10–p90) around a p50 of 32s, min 19s, max 44s, 5 samples
- RunsOn 4 vCPU · 16 GB spread 0% (p10–p90) around a p50 of 18s, min 18s, max 18s, 5 samples
- Warpbuild 4 vCPU · 16 GB spread 7.7% (p10–p90) around a p50 of 26s, min 24s, max 26s, 5 samples
- GitHub 4 vCPU · 16 GB spread 15.2% (p10–p90) around a p50 of 29s, min 26s, max 32s, 5 samples
- Ubicloud 4 vCPU · 16 GB p50 58s, min 57s, max 1m 09s, 3 samples, not ranked
- Avrea 4 vCPU · 16 GB spread 16.7% (p10–p90) around a p50 of 12s, min 10s, max 12s, 5 samples
- Blacksmith 4 vCPU · 16 GB spread 28.1% (p10–p90) around a p50 of 32s, min 31s, max 44s, 5 samples
- Namespace 4 vCPU · 16 GB spread 30.5% (p10–p90) around a p50 of 19s, min 17s, max 26s, 5 samples
- AWS CodeBuild 8 vCPU · 16 GB spread 7.1% (p10–p90) around a p50 of 34s, min 33s, max 37s, 5 samples
- Ubicloud 8 vCPU · 32 GB p50 1m 02s, min 54s, max 1m 06s, 4 samples, not ranked
- Avrea 8 vCPU · 32 GB spread 21.5% (p10–p90) around a p50 of 13s, min 13s, max 17s, 5 samples
- RunsOn 8 vCPU · 32 GB spread 24.6% (p10–p90) around a p50 of 13s, min 12s, max 16s, 5 samples
- Namespace 8 vCPU · 16 GB spread 26.3% (p10–p90) around a p50 of 19s, min 19s, max 26s, 5 samples
- Blacksmith 8 vCPU · 32 GB spread 36% (p10–p90) around a p50 of 15s, min 12s, max 19s, 5 samples
- Warpbuild 8 vCPU · 32 GB spread 37.3% (p10–p90) around a p50 of 30s, min 22s, max 36s, 5 samples
- GitHub 8 vCPU · 32 GB spread 45.9% (p10–p90) around a p50 of 27s, min 20s, max 38s, 5 samples
- StarSling 8 vCPU · 32 GB spread 186.2% (p10–p90) around a p50 of 26s, min 19s, max 1m 17s, 5 samples
- RunsOn 8 vCPU · 32 GB spread 7.7% (p10–p90) around a p50 of 13s, min 13s, max 14s, 5 samples
- Avrea 8 vCPU · 32 GB spread 10.9% (p10–p90) around a p50 of 11s, min 11s, max 13s, 5 samples
- Warpbuild 8 vCPU · 32 GB spread 11.6% (p10–p90) around a p50 of 19s, min 18s, max 21s, 5 samples
- Ubicloud 8 vCPU · 32 GB spread 15.8% (p10–p90) around a p50 of 1m 02s, min 54s, max 1m 07s, 5 samples
- Blacksmith 8 vCPU · 32 GB spread 23.4% (p10–p90) around a p50 of 35s, min 35s, max 44s, 5 samples
- Namespace 8 vCPU · 32 GB spread 24.4% (p10–p90) around a p50 of 32s, min 30s, max 39s, 5 samples
Every result
Every machine and action, failures included.
Show every result101 results · x64, arm64
| x64 · runner | Action | Restore | Save |
|---|---|---|---|
| RunsOnr8a.xlarge · tmpfs | actions/cache | 7s | 7s |
| RunsOnm8a.2xlarge · tmpfs | actions/cache | 7s | 7s |
| RunsOnr8a.2xlarge · tmpfs | actions/cache | 7s | 7s |
| RunsOnm8a.2xlarge · gp3 1000 MiB/s | actions/cache | 8s | 7s |
| RunsOnm8azn.xlarge · gp3 1000 MiB/s | actions/cache | 9s | 9s |
| RunsOnm8azn.3xlarge · EBS gp3 | actions/cache | 9s | 9s |
| RunsOnr8a.large · tmpfs | actions/cache | 10s | 7s |
| RunsOni7i.2xlarge · local NVMe | actions/cache | 12s | 8s |
| RunsOni7i.xlarge · local NVMe | actions/cache | 13s | 9s |
| RunsOnm8a.2xlarge · EBS gp3 | actions/cache | 13s | 12s |
| RunsOnm8id.2xlarge · local NVMe | actions/cache | 14s | 11s |
| RunsOnm8i-flex.2xlarge · EBS gp3 | actions/cache | 15s | 11s |
| RunsOnm8i.2xlarge · EBS gp3 | actions/cache | 15s | 11s |
| RunsOnm8a.xlarge · EBS gp3 | actions/cache | 18s | 16s |
| RunsOnm8azn.xlarge · EBS gp3 | actions/cache | 18s | 15s |
| RunsOnc8a.2xlarge · EBS gp3 | actions/cache | 18s | 16s |
| RunsOnr8a.large · EBS gp3 | actions/cache | 19s | 16s |
| RunsOnm8i-flex.xlarge · EBS gp3 | actions/cache | 19s | 14s |
| RunsOnm8i.xlarge · EBS gp3 | actions/cache | 19s | 14s |
| RunsOni7i.large · local NVMe | actions/cache | 21s | 14s |
| RunsOnc8a.xlarge · EBS gp3 | actions/cache | 23s | 16s |
| RunsOnm8a.large · EBS gp3 | actions/cache | 25s | 16s |
| RunsOnm8azn.large · EBS gp3 | actions/cache | 25s | 16s |
| RunsOnm8i-flex.large · EBS gp3 | actions/cache | 26s | 16s |
| RunsOnm8i.large · EBS gp3 | actions/cache | 27s | 15s |
| RunsOnm8id.xlarge · local NVMe | actions/cache | 32s | 24s |
| RunsOnc8a.large · EBS gp3 | actions/cache | 33s | 34s |
| RunsOnt8i.medium · EBS gp3 | actions/cache | 37s | 32s |
| RunsOnm8id.large · local NVMe | actions/cache | 1m 11s | 44s |
| actions/cache: 1 of 5 jobs failed, latest saved in 31s, restore failed after 10s | |||
| Avrea | actions/cache | 13s | 19s |
| Avrea | actions/cache | 14s | 20s |
| Avrea | actions/cache | 15s | 19s |
| Blacksmith | actions/cache | 15s | 7s |
| Blacksmith | actions/cache | 15s | 7s |
| Blacksmith | actions/cache | 17s | 8s |
| Namespace8x16 | actions/cache | 19s | 13s |
| Namespace4x8 | actions/cache | 20s | 12s |
| Namespace2x8 | actions/cache | 21s | 15s |
| Namespace4x16 | actions/cache | 21s | 14s |
| Namespace8x32 | actions/cache | 21s | 14s |
| StarSling | actions/cache | 26s | 13s |
| StarSling | actions/cache | 32s | 12s |
| Warpbuild | actions/cache | 27s | 16s |
| Warpbuild | actions/cache | 28s | 16s |
| Warpbuild | actions/cache | 30s | 12s |
| Warpbuild | WarpBuilds/cache | 1m 13s | 1m 27s |
| Warpbuild | WarpBuilds/cache | 1m 15s | 1m 22s |
| Warpbuild | WarpBuilds/cache | 1m 15s | 59s |
| WarpBuilds/cache: 1 of 5 jobs failed, latest save step ran 2m 08s but reported a failed upload, restore failed after 1s | |||
| GitHub | actions/cache | 27s | 16s |
| GitHub | actions/cache | 34s | 20s |
| GitHub | actions/cache | 46s | 34s |
| AWS CodeBuildlarge | actions/cache | 34s | 2m 04s |
| AWS CodeBuildmedium | actions/cache | 35s | 1m 56s |
| AWS CodeBuildsmall | actions/cache | 51s | 2m 15s |
| Ubicloudpremium | actions/cache | 1m 02s | 47s |
| Ubicloudstandard | actions/cache | 1m 03s | 47s |
| Ubicloudstandard | actions/cache | 1m 06s | 52s |
| Ubicloudstandard | actions/cache | 1m 08s | 58s |
| Ubicloudpremium | actions/cache | 1m 09s | 53s |
| Ubicloudpremium | actions/cache | 1m 10s | 47s |
| actions/cache: 1 of 5 jobs failed, latest saved in 41s, restore failed after 1sactions/cache: 2 of 5 jobs failed, latest saved in 52s, restore failed after 24s | |||
| arm64 · runner | Action | Restore | Save |
|---|---|---|---|
| RunsOnm9g.xlarge · tmpfs | actions/cache | 8s | 7s |
| RunsOnr9g.xlarge · tmpfs | actions/cache | 8s | 7s |
| RunsOnm9g.2xlarge · tmpfs | actions/cache | 8s | 7s |
| RunsOnr9g.large · tmpfs | actions/cache | 11s | 9s |
| RunsOnm9gd.2xlarge · local NVMe | actions/cache | 11s | 9s |
| RunsOnm9g.2xlarge · EBS gp3 | actions/cache | 13s | 12s |
| RunsOnm9g.xlarge · EBS gp3 | actions/cache | 18s | 15s |
| RunsOnc8g.2xlarge · EBS gp3 | actions/cache | 18s | 13s |
| RunsOnm9gd.xlarge · local NVMe | actions/cache | 24s | 20s |
| RunsOnm9g.large · EBS gp3 | actions/cache | 29s | 16s |
| RunsOnc8g.xlarge · EBS gp3 | actions/cache | 30s | 15s |
| RunsOnc8g.large · EBS gp3 | actions/cache | 32s | 28s |
| RunsOnm9gd.large · local NVMe | actions/cache | 53s | 35s |
| Avrea | actions/cache | 11s | 15s |
| Avrea | actions/cache | 12s | 15s |
| Avrea | actions/cache | 12s | 15s |
| NamespaceApple silicon 2x8 | actions/cache | 18s | 16s |
| NamespaceApple silicon 4x16 | actions/cache | 19s | 15s |
| Namespace8x32 | actions/cache | 32s | 18s |
| Namespace4x8 | actions/cache | 34s | 21s |
| Namespace8x16 | actions/cache | 34s | 18s |
| Namespace4x16 | actions/cache | 36s | 22s |
| Namespace2x8 | actions/cache | 39s | 33s |
| Warpbuild | actions/cache | 19s | 15s |
| Warpbuildxfast (Apple M4 Pro) | actions/cache | 20s | 12s |
| Warpbuildxfast (Apple M4 Pro) | actions/cache | 25s | 16s |
| Warpbuild | actions/cache | 26s | 21s |
| Warpbuild | actions/cache | 28s | 25s |
| Warpbuildxfast (Apple M4 Pro) | WarpBuilds/cache | 59s | 44s |
| Warpbuildxfast (Apple M4 Pro) | WarpBuilds/cache | 1m 06s | 47s |
| Warpbuild | WarpBuilds/cache | 1m 13s | 50s |
| Warpbuild | WarpBuilds/cache | 1m 17s | 1m 31s |
| Warpbuild | WarpBuilds/cache | 1m 57s | 1m 28s |
| WarpBuilds/cache: 1 of 5 jobs failed, latest saved in 41s, restore failed after 6sWarpBuilds/cache: 1 of 5 jobs failed, latest saved in 1m 20s, restore failed after 6s | |||
| GitHub | actions/cache | 29s | 25s |
| GitHub | actions/cache | 52s | 42s |
| Blacksmith | actions/cache | 32s | 20s |
| Blacksmith | actions/cache | 35s | 25s |
| Blacksmith | actions/cache | 35s | 17s |
| Ubicloudstandard | actions/cache | 58s | 49s |
| Ubicloudstandard | actions/cache | 1m 02s | 48s |
| Ubicloudstandard | actions/cache | 1m 11s | 53s |
| actions/cache: 2 of 5 jobs failed, latest saved in 49s, restore failed after 24sactions/cache: 1 of 5 jobs failed, latest saved in 49s, restore failed after 52s | |||
- tinted: fastest providers on the arch
- bold: fastest result
- actions/cache: GitHub's standard action
- owner/cache: the provider's own action
Which machines ran it2 notes
-
RunsOn ran on m8a.2xlarge, r8a.2xlarge, r8a.xlarge, r8a.large, m8azn.xlarge, i7i.2xlarge, m8azn.3xlarge, i7i.xlarge, m8i.2xlarge, m8i-flex.2xlarge, m8id.2xlarge, m8i.xlarge, c8a.2xlarge, m8i-flex.xlarge, m8a.xlarge, i7i.large, c8a.xlarge, m8a.large, m8azn.large, m8i-flex.large, m8i.large, m8id.xlarge, c8a.large, t8i.medium and m8id.large (x64) and m9g.2xlarge, r9g.xlarge, m9g.xlarge, r9g.large, m9gd.2xlarge, c8g.2xlarge, c8g.xlarge, m9gd.xlarge, m9g.large, c8g.large and m9gd.large (arm64) with Magic Cache:
the
extras=s3-cachelabel and theruns-on/actionstep. Its other machines have no cache run.
Where actions/cache goes
4 providers send it to their own storage, 3 with no workflow change. Namespace, StarSling and Warpbuild leave it on GitHub's cache service, as GitHub's own runners do. AWS CodeBuild documents no rerouting.
| Provider | actions/cache goes to | Own cache | Docs |
|---|---|---|---|
| GitHub | GitHub's cache service (Azure Blob) | – | GitHub |
| RunsOn | rerouted S3 in your AWS account, via a label and runs-on/action | – | Magic Cache |
| Avrea | rerouted a local cache proxy | – | Avrea |
| AWS CodeBuild | not rerouted | – | – |
| Blacksmith | rerouted Blacksmith's colocated cache | useblacksmith/cache (archived) | Blacksmith |
| Namespace | not rerouted GitHub's cache service (Azure Blob) | Cache Volumes (not a save and restore; not measured) | Namespace |
| StarSling | not rerouted GitHub's cache service (Azure Blob) | – | StarSling |
| Ubicloud | rerouted Ubicloud's cache, stored on Cloudflare R2 | – | Ubicloud |
| Warpbuild | not rerouted GitHub's cache service (Azure Blob) | WarpBuilds/cache, to WarpBuild's storage | WarpBuild |
-
GitHub GitHub's cache service (Azure Blob)
own cache: none · docs
-
RunsOn rerouted S3 in your AWS account, via a label and runs-on/action
own cache: none · docs
-
Avrea rerouted a local cache proxy
own cache: none · docs
-
AWS CodeBuild not rerouted
own cache: none
-
Blacksmith rerouted Blacksmith's colocated cache
own cache: useblacksmith/cache (archived) · docs
-
Namespace not rerouted GitHub's cache service (Azure Blob)
own cache: Cache Volumes (not a save and restore; not measured) · docs
-
StarSling not rerouted GitHub's cache service (Azure Blob)
own cache: none · docs
-
Ubicloud rerouted Ubicloud's cache, stored on Cloudflare R2
own cache: none · docs
-
Warpbuild not rerouted GitHub's cache service (Azure Blob)
own cache: WarpBuilds/cache, to WarpBuild's storage · docs
- Warpbuild: WarpBuild's docs call GitHub's own cache "the recommended approach and is the most seamless experience for users", and keep WarpBuilds/cache for advanced use and bring-your-own-cloud. This test measures both on every WarpBuild runner.
Caches not measured here
Each works differently from a save and restore, so this test leaves it out.
- RunsOn: the ECR Docker layer cache (extras=ecr-cache) and EFS shared across jobs (extras=efs).
- Blacksmith: sticky disks (a disk attached to the runner, not a save and restore) and its Docker layer cache.
- Namespace: Cache Volumes (nscloud-cache-action), a disk attached to the runner rather than a save and restore.
- Warpbuild: snapshot runners (a job starts from a saved disk image).
Transparent cache or a provider action
Keep actions/cache and pick a runner that makes it fast.
- Warpbuild x64: WarpBuilds/cache 1m 13s–1m 15s restore, 59s–1m 27s save; actions/cache 27s–30s restore, 12s–16s save on the same 3 runners.
- Warpbuild arm64: WarpBuilds/cache 59s–1m 57s restore, 44s–1m 31s save; actions/cache 19s–28s restore, 12s–25s save on the same 5 runners.
-
A rerouted
actions/cachespeeds up every action built on the cache API at once:setup-node,setup-python,setup-go,Swatinem/rust-cache, Docker'stype=ghacache. A provider action only speeds the steps you rewrite, on that provider's runners, and its fork lags upstream.
GitHub's cache limits
- 10 GB per repository at no charge, entries evicted after 7 days unused; since November 2025, admins can pay for more. 4 GB took 34s to restore on GitHub's x64 runner.
-
RunsOn's Magic Cache keeps
actions/cacheand sends it to S3 in your AWS account: no quota, your retention, your IAM policies. It takes a label,extras=s3-cache, plus theruns-on/actionstep.
How it's measured
One job per runner and action per run, 2 to 12 vCPU: save a 4 GB file, delete it, restore it, check its size. Times are the steps inside the job, medians across jobs; a failed job stays, at the step it failed.
Detailsworkload, consistency, earlier numbers
- A 4 GB random file saved with a cache action, deleted, restored right away on the same runner, and checked to be complete: actions/cache (GitHub's cache service, or whatever the provider routes it to) and the provider's own cache action where the provider still recommends one (Blacksmith archived useblacksmith/cache: actions/cache is routed to its cache). No pause between save and restore, so a cache that isn't read-after-write consistent shows up as a failure. File generation is not timed. The size check is not counted.
- Restore runs right after save. A cache that is not read-after-write consistent fails here; in a real job, the build silently starts cold.
- The same machines as the all-runners table, where each runner's
actions/cacherestore sits next to its builds. - Earlier versions of this page came from a different harness on 2 vCPU runners; those numbers are not comparable and are gone.
- Raw numbers: cache.json. Caching on RunsOn: docs.