Fastest of the nine configurations measured
2.3×
Vitko Runners (warm starts + test splitting)
vs GitHub-hosted (ubuntu-latest); no other provider’s interval overlaps it
Lowest cost per job among the managed runners measured
−84%
Vitko Runners
cost per job vs GitHub-hosted (ubuntu-latest); next: Ubicloud, −83%
Lowest median time
8 / 12
workloads
Vitko Runners (warm starts + test splitting)
Jobs measured
8,370
930 per configuration
9 configurations × 12 workloads, 3 sessions of 10 rounds
Speed
× faster than GitHub-hosted (ubuntu-latest) · higher is betterCost per job
USD per $1.00 spent on GitHub-hosted (ubuntu-latest) · lower is betterTime by workload
lowest3× slower
Median job time relative to the lowest median on each workload (1.0× = lowest)
List prices
Per-minute list prices, read 2026-10-24. List price per minute is not cost per job; faster runners finish sooner. All providers| Provider | $ per minute (2 vCPU) | Billing | Included minutes |
|---|---|---|---|
| Ubicloud | $0.00125 | Per minute (resource use calculated at per-minute granularity, billed monthly) | Not stated on the pricing page |
| Vitko Runners | $0.002 | Per second, no per-job minimum | 2,000 minutes every month |
| Sengi | $0.003 | Per minute | 3,000 minutes a month on 2 vCPU (1,500 on 4 vCPU, 750 on 8 vCPU, or an |
| Blacksmith | $0.004 | Per minute | 3,000 free minutes a month |
| WarpBuild | $0.004 | Per minute ("CI runners are billed on a per-minute basis") | A free usage or credit amount is mentioned |
| BuildJet | $0.004 | Per minute | One-time $5 credit (last published) |
| CRACI | $0.004 | Metered per second | Not stated on the pricing page |
| GitHub-hosted runners (ubuntu-latest, 2 vCPU) | $0.006 | Per minute | Plan-dependent, private repositories only: 2,000 minutes (Free), 3,000 |
| Depot | $0.006 | Per second | 2,000 GitHub Actions minutes a month on the Developer plan |
All configurations
Speed and cost per job against GitHub-hosted (ubuntu-latest)| Configuration | Type | Speed | Cost per job vs GitHub-hosted (ubuntu-latest) | Failed runs |
|---|---|---|---|---|
| Vitko Runners (warm starts + test splitting)Vitko | Managed | 2.3x faster | 84% lower84% lower84% lower | 3 of 360 |
| Vitko RunnersVitko | Managed | 1.7x faster | 84% lower84% lower84% lower | 0 of 360 |
| GitHub-hosted larger runner (4 vCPU) | Managed | 1.6x faster | 39% higher39% higher39% higher | 3 of 360 |
| Blacksmith | Managed | 1.6x faster | 52% lower52% lower52% lower | 3 of 360 |
| Self-hosted runners on Google Cloud | Self-hosted | 1.5x faster | 59% lower59% lower59% lower | 1 of 360 |
| RunsOn | Self-hosted | 1.2x faster | 88% lower75% lower43% higher | 1 of 360 |
| Self-hosted runners on AWS (one VM per job) | Self-hosted | 1.2x faster | 62% lower60% lower49% lower | 0 of 360 |
| Ubicloud | Managed | 1.1x faster | 83% lower83% lower83% lower | 1 of 360 |
| GitHub-hosted runners (ubuntu-latest, 2 vCPU) | Managed | baseline | baselinebaselinebaseline | 3 of 360 |
The cost column follows the jobs-a-month setting. Managed prices do not change with volume; self-hosted options spread fixed monthly costs over the volume, so their cost does. Green marks the leading value. Cost by volume.
Indexes and 95% intervals
| Configuration | Time index | 95% interval | Cost index | 95% interval |
|---|---|---|---|---|
| Vitko Runners (warm starts + test splitting) | 0.436 | 0.423 to 0.459 | 0.158 | 0.156 to 0.160 |
| Vitko Runners | 0.574 | 0.556 to 0.602 | 0.157 | 0.155 to 0.159 |
| GitHub-hosted larger runner (4 vCPU) | 0.642 | 0.629 to 0.669 | 1.387 | 1.350 to 1.424 |
| Blacksmith | 0.645 | 0.606 to 0.759 | 0.482 | 0.435 to 0.537 |
| Self-hosted runners on Google Cloud | 0.667 | 0.658 to 0.692 | 0.409 | 0.386 to 0.440 |
| RunsOn | 0.828 | 0.816 to 0.859 | 0.121 | 0.117 to 0.125 |
| Self-hosted runners on AWS (one VM per job) | 0.869 | 0.833 to 0.947 | 0.383 | 0.358 to 0.405 |
| Ubicloud | 0.879 | 0.847 to 0.921 | 0.173 | 0.167 to 0.180 |
| GitHub-hosted runners (ubuntu-latest, 2 vCPU) | 1.000 | 1.000 to 1.000 | 1.000 | 1.000 to 1.000 |
Index = the configuration's value divided by GitHub-hosted (ubuntu-latest)'s, geometric mean over the workloads, at 100,000 jobs a month. Lower is faster or cheaper.
How to read this
- Speed
- × faster than GitHub-hosted (ubuntu-latest), median job time.
- Cost
- What the same jobs cost, per $1 on GitHub.
- Averages hide workloads
- Check the heatmap and the head-to-heads.
- Scope
- 2 vCPU class and one 4 vCPU reference, Linux x64, one region per provider, public repositories. No GPU, macOS, Windows or Arm.
- Sample
- One result set: 3 sessions, 10 measured rounds each. Intervals cover sampling, not your workflow.
- Operator
- We operated the self-hosted options. More.