CI Bench

Workload · CI Bench v1

codex-lint workload

Median time runs from 404 s (Vitko Runners) to 884 s (GitHub-hosted runners (ubuntu-latest, 2 vCPU)); GitHub-hosted (ubuntu-latest) takes 884 s.

Lowest median time
404 s
Vitko Runners
GitHub-hosted (ubuntu-latest): 884 s
Slowest median
884 s
GitHub-hosted runners (ubuntu-latest, 2 vCPU)
2.2× the lowest
Lowest cost, managed
$0.014
Vitko Runners
mean per job
Failed runs
1
GitHub-hosted larger runner (4 vCPU) 1
of 270 measured runs

Median time

Seconds from start to finish · lower is better
Vitko Runners
404 s
Vitko Runners (warm starts + test splitting)
405 s
Blacksmith
448 s
GitHub-hosted larger runner (4 vCPU)
476 s
Self-hosted runners on AWS (one VM per job)
512 s
Self-hosted runners on Google Cloud
581 s
RunsOn
623 s
Ubicloud
682 s
GitHub-hosted (ubuntu-latest)
884 s

Table

Ordered by median time. 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
Vitko Runners404 s441 s1.5 s2 s$0.01430 of 30
Vitko Runners (warm starts + test splitting)405 s425 s2 s2 s$0.01430 of 30
Blacksmith448 s748 s8 s10 s$0.03430 of 30
GitHub-hosted larger runner (4 vCPU)476 s511 s3 s3.6 s$0.09929 of 30
Self-hosted runners on AWS (one VM per job)512 s598 s52 s93.3 s$0.04930 of 30
Self-hosted runners on Google Cloud581 s625 s1 s2 s$0.06430 of 30
RunsOn623 s662 s18 s23.1 s$0.01030 of 30
Ubicloud682 s881 s18.5 s26 s$0.01530 of 30
GitHub-hosted runners (ubuntu-latest, 2 vCPU)884 s934 s3 s4 s$0.08730 of 30

The job

  • Project: openai/codex at rust-v0.159.3 (01fc69f4026735edfdf6789820549727a4867b11), licence Apache-2.0. Fetched at run time, not vendored.
  • Upstream job: .github/workflows/rust-ci-full.yml, job lint_build (ubuntu-24.04, x86_64-unknown-linux-gnu, dev).
  • Benchmark workflow: .github/workflows/wl-codex-lint.yml.

Portability edits (identical for every provider)

  • Upstream runs this on its own larger runner group; here it runs on the provider under test.
  • Two extra apt packages (libglib2.0-dev, libdbus-1-dev) that upstream's runner image has.
  • codex-voice-host is excluded (needs GStreamer 1.28+, absent from stock Ubuntu 24.04).
  • No -D warnings, so the job ends green; the compile work is the same.
  • Needs more than 8 GB of memory without swap (GitHub's runner has 4 GB of swap). Providers without swap run it at their next memory size, priced there.
  • The kernel.unprivileged_userns_clone sysctl in upstream's setup action runs only where the kernel has it.

suite/codex-lint holds the workflow and notes.