CI Bench

Head to head · CI Bench v1

Self-hosted runners on AWS vs GitHub-hosted larger runner (4 vCPU)

GitHub-hosted larger runner (4 vCPU) ran jobs 1.4× faster than Self-hosted runners on AWS (one VM per job) (95% interval 1.3× to 1.5×); Self-hosted runners on AWS (one VM per job) cost 72% less per job (at 100,000 jobs a month).

Self-hosted options spread fixed monthly costs over the monthly volume, so their cost per job changes with it; see the volume table.

Speed

× faster than GitHub-hosted (ubuntu-latest) · higher is better
Self-hosted runners on AWS (one VM per job)
1.2×
GitHub-hosted larger runner (4 vCPU)
1.6×
GitHub-hosted (ubuntu-latest)
1.0×

Cost per job

USD per $1.00 spent on GitHub-hosted (ubuntu-latest), at 100,000 jobs a month · lower is better
Self-hosted runners on AWS (one VM per job)
$0.38
GitHub-hosted larger runner (4 vCPU)
$1.39
GitHub-hosted (ubuntu-latest)
$1.00

Workload by workload

Self-hosted runners on AWS had the lowest median time of the two on 2 of 12 workloads, GitHub-hosted larger runner (4 vCPU) on 9.
WorkloadSelf-hosted runners on AWS (one VM per job)GitHub-hosted larger runner (4 vCPU)Lowest median
Burst: 20 jobs at once161 s154 sGitHub-hosted larger runner (4 vCPU)
cli357 s192 sGitHub-hosted larger runner (4 vCPU)
codex-lint512 s476 sGitHub-hosted larger runner (4 vCPU)
container247 s185 sGitHub-hosted larger runner (4 vCPU)
fd114 s66 sGitHub-hosted larger runner (4 vCPU)
flask70 s21 sGitHub-hosted larger runner (4 vCPU)
guava717 s946 sSelf-hosted runners on AWS (one VM per job)
monorepo281 s220 sGitHub-hosted larger runner (4 vCPU)
pydantic154 s154 sSelf-hosted runners on AWS (one VM per job)
ts433 s435 sSelf-hosted runners on AWS (one VM per job)
vite403 s288 sGitHub-hosted larger runner (4 vCPU)
vue117 s67 sGitHub-hosted larger runner (4 vCPU)

Cost by volume

Mean cost per job in USD, from the benchmark’s sensitivity results
VolumeSelf-hosted runners on AWS (one VM per job)GitHub-hosted larger runner (4 vCPU)
100,000 jobs a month$0.383$1.387
10,000 jobs a month$0.395$1.387
1,000 jobs a month$0.508$1.387

Failed runs

Counted, never replaced
Self-hosted runners on AWS (one VM per job)
0 of 360 measured runs (0.0%)
GitHub-hosted larger runner (4 vCPU)
3 of 360 measured runs (0.8%)

Each configuration page lists where its failures happened. All losses.

All results for this pair

One line per configuration pairing, generated from the benchmark data