Short answer
In CI Bench v1, the mean cost of one job ranged by workload; on GitHub-hosted (ubuntu-latest) it was cli $0.039, codex-lint $0.087, container $0.027, fd $0.012, flask $0.0060, guava $0.109, monorepo $0.040, pydantic $0.020, ts $0.077, vite $0.061, vue $0.014. Among managed runners the lowest mean cost per job was Ubicloud, Vitko Runners, Vitko Runners (warm starts + test splitting), depending on the workload. Costs use list prices dated 2026-10-05 and the measured time of each job; self-hosted options are priced all-in at 100,000 jobs a month. Maintained by Vitko, Inc., which sells one of the products measured.
Mean cost per job, US dollars
| Configuration | cli | codex-lint | container | fd | flask | guava | monorepo | pydantic | ts | vite | vue |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Vitko Runners (warm starts + test splitting)Vitko | $0.012 | $0.014 | $0.0061 | $0.0014 | $0.0004 | $0.022 | $0.0056 | $0.0022 | $0.027 | $0.013 | $0.0017 |
| Vitko RunnersVitko | $0.0097 | $0.014 | $0.0060 | $0.0016 | $0.0005 | $0.022 | $0.0058 | $0.0034 | $0.012 | $0.012 | $0.0020 |
| GitHub-hosted larger runner (4 vCPU) | $0.045 | $0.099 | $0.042 | $0.019 | $0.012 | $0.181 | $0.046 | $0.033 | $0.099 | $0.060 | $0.020 |
| Blacksmith | $0.020 | $0.034 | $0.031† | $0.0055 | $0.0040 | $0.051 | $0.014 | $0.0087 | $0.030 | $0.026 | $0.0077 |
| Self-hosted runners on Google Cloud | $0.017 | $0.064 | $0.053 | $0.0035 | $0.0011 | $0.045 | $0.016 | $0.0065 | $0.029 | $0.023 | $0.0044 |
| RunsOn | $0.0041 | $0.010 | $0.0060 | $0.0018 | $0.0014 | $0.0096 | $0.0039 | $0.0024 | $0.0061 | $0.0053 | $0.0020 |
| Self-hosted runners on AWS (one VM per job) | $0.014 | $0.049 | $0.044 | $0.0047 | $0.0036 | $0.032 | $0.012 | $0.0064 | $0.017 | $0.016 | $0.0051 |
| Ubicloud | $0.0078 | $0.015 | $0.0047 | $0.0021 | $0.0013 | $0.019 | $0.0061 | $0.0037 | $0.012 | $0.011 | $0.0027 |
| GitHub-hosted runners (ubuntu-latest, 2 vCPU) | $0.039 | $0.087 | $0.027 | $0.012 | $0.0060 | $0.109 | $0.040 | $0.020 | $0.077 | $0.061 | $0.014 |
† Layer cache did not hit in this run; a re-run is planned. See method.
Cost per job is time times price, so a faster runner can cost less at a higher per-minute rate. List price per minute is not cost per job; faster runners finish sooner. Self-hosted figures include fixed monthly costs spread over 100,000 jobs a month (when self-hosting pays off). Burst workload: its own page.
More: all questions answered · 12 options compared · ranked by speed · ranked by cost per job · calculator.
Method: how the runs were made; data: results.json; every raw record: the repository. Maintained by Vitko, Inc., which sells one of the products measured. Page dated October 29, 2026.
† Layer cache did not hit in this run; a re-run is planned. See method.