CI Bench

Workload · CI Bench v1

Burst: 20 jobs at once

Median time runs from 97 s (Blacksmith) to 259 s (GitHub-hosted runners (ubuntu-latest, 2 vCPU)); GitHub-hosted (ubuntu-latest) takes 259 s.

Lowest median time
97 s
Blacksmith
GitHub-hosted (ubuntu-latest): 259 s
Slowest median
259 s
GitHub-hosted runners (ubuntu-latest, 2 vCPU)
2.7× the lowest
Lowest cost, managed
$0.052
Vitko Runners (warm starts + test splitting)
for all 20 jobs
Failed runs
0
no failed runs
of 270 measured runs

Median time

Seconds from start to finish · lower is better
Blacksmith
97 s
Vitko Runners (warm starts + test splitting)
131 s
Self-hosted runners on Google Cloud
153 s
GitHub-hosted larger runner (4 vCPU)
154 s
Vitko Runners
160 s
Self-hosted runners on AWS (one VM per job)
161 s
RunsOn
177 s
Ubicloud
203 s
GitHub-hosted (ubuntu-latest)
259 s

Table

Ordered by median time. Time and cost cover all 20 jobs; queue time is per job. Self-hosted options are priced all-in at 100,000 jobs a month. Green marks the lowest median time and the lowest cost among the managed runners.
ConfigurationMedianp95Queue p50Queue p95CostOK
Blacksmith97 s190 s9 s16 s$0.16630 of 30
Vitko Runners (warm starts + test splitting)131 s191 s17.3 s115.1 s$0.05230 of 30
Self-hosted runners on Google Cloud153 s165 s2 s2.5 s$0.13530 of 30
GitHub-hosted larger runner (4 vCPU)154 s179 s3 s38.6 s$0.63630 of 30
Vitko Runners160 s372 s18 s294.6 s$0.05630 of 30
Self-hosted runners on AWS (one VM per job)161 s182 s65.3 s92.6 s$0.11130 of 30
RunsOn177 s340 s22.5 s193.6 s$0.05130 of 30
Ubicloud203 s271 s18 s127.5 s$0.06230 of 30
GitHub-hosted runners (ubuntu-latest, 2 vCPU)259 s283 s3 s31.3 s$0.50030 of 30

The job

  • Project: psf/black at 26.5.1 (87928e6d6761a4a6d22250e1fee5601b3998086e), licence MIT. Fetched at run time, not vendored.
  • Upstream job: .github/workflows/test.yml, job test (3.13, ubuntu-latest).
  • Benchmark workflow: .github/workflows/wl-black.yml.

Portability edits (identical for every provider)

  • One matrix cell (Python 3.13, Linux); Coveralls upload runs only in upstream's repository.
  • Dispatched 20 times at once: the measured time is from the first job created to the last job finished.

suite/burst holds the workflow and notes.