CI Bench

Self-hosted · CI Bench v1

Self-hosted runners on AWS (one VM per job)

1.2x faster than GitHub's 2 vCPU runner and 62% lower cost per job, averaged over 12 workloads.

Speed
1.2×
faster than GitHub-hosted (ubuntu-latest)
7th of 9 by speed
Cost per job
−62%
vs GitHub-hosted (ubuntu-latest)
at 100,000 jobs a month; 60% lower at 10,000, 49% lower at 1,000
Lowest median time
0 / 12
workloads
none of the workloads
Failed runs
0 of 360
no failed measured run
across all workloads

Speed on each workload

× faster than GitHub-hosted (ubuntu-latest) on the same workload
Burst: 20 jobs at once
1.6×
cli
1.0×
codex-lint
1.7×
container
1.0×
fd
0.8×
flask
0.3×
guava
1.6×
monorepo
1.4×
pydantic
1.2×
ts
1.8×
vite
1.5×
vue
1.0×

Configuration

Self-hosted · 2 vCPU / 8 GiB
Measured configuration
Self-hosted: AWS EC2 m8a.large, one VM per job (on-demand)
Size
2 vCPU / 8 GiB
Label or setup
self-hosted label of the deployment
Price as measured
$0.0020287 a minute, each job rounded up to a whole minute; list price on 2026-10-05 (source)
Notes
All-in (METHOD.md, Cost): instance seconds, root volume, public IPv4 and internet egress measured per job (cost_ec2.py, VPC flow logs), plus the launcher host as a fixed monthly cost.
Definition
providers/ec2-eph.json

Per workload

Green marks the lowest median time on the workload. The burst row covers all 20 jobs.
WorkloadMedian timevs GitHub-hosted (ubuntu-latest)p95 timeMean costvs GitHub-hosted (ubuntu-latest)Successful runsRank
Burst: 20 jobs at once161 s1.6x faster182 s$0.11178% lower30 of 306th
cli357 s1.0x faster398 s$0.01465% lower30 of 307th
codex-lint512 s1.7x faster598 s$0.04944% lower30 of 305th
container247 s1.0x slower300 s$0.04464% higher30 of 308th
fd114 s1.2x slower139 s$0.004761% lower30 of 309th
flask70 s3.0x slower134 s$0.003640% lower30 of 309th
guava717 s1.6x faster783 s$0.03271% lower30 of 303rd
monorepo281 s1.4x faster342 s$0.01271% lower30 of 307th
pydantic154 s1.2x faster184 s$0.006468% lower30 of 307th
ts433 s1.8x faster467 s$0.01778% lower30 of 304th
vite403 s1.5x faster503 s$0.01673% lower30 of 306th
vue117 s1.0x faster155 s$0.005163% lower30 of 308th
Slower than GitHub-hosted (ubuntu-latest)
container (1.0x slower), fd (1.2x slower), flask (3.0x slower)
Burst queue, p95
93 s, against 31 s for GitHub-hosted (ubuntu-latest)
Indexes and 95% intervals
Time index
0.869 (95% interval 0.833 to 0.947)
Cost index
0.383 (0.358 to 0.405) at 100,000 jobs a month

Compare with…

Head-to-head pages: speed, cost, failures and each workload