quickstart →

Every runner, every measurement.

94 runners from 9 providers against 11 measurements and their cost per build.

Providers

Build time against cost per build

One dot per runner at its p90 time and cost (what 9 jobs out of 10 stay under), all three builds. The line joins the runners no other runner beats on both. Small dots: RunsOn variants that are not a best trade-off. Fastest: Namespace 8x32, 5m 24s · $0.1501 for all three builds 37 of 58 runners finished all three builds; 21 do not run the Docker build on purpose; the rest are in the table.
0s5m 00s10m 00s15m 00s20m 00s25m 00s$0$0.1000$0.2000$0.3000$0.4000p90 build time →↑ p90 cost↙ faster and cheaper
  • GitHub
  • Avrea
  • AWS CodeBuild
  • Blacksmith
  • boat
  • Namespace
  • RunsOn
  • Ubicloud
  • Warpbuild
Best trade-off
58 machines · 9 providers
workspace · CPU Builds, wall time Builds, cost per build CPU Workspace disk Net & cache DB Queue & price
Namespace SaaS · US/Europe · jobs ran from Namespace Labs (US) SaaS · US/Europe · jobs ran from Namespace Labs (US)
Namespace 8x32 8 vCPU 32 GB VM disk EPYC · model hidden $0.1336 5m 05s 1m 07s $0.0292 29s $0.0148 3m 29s $0.0896 4,598 563k 104k 135 21s 19k 10sp90 13s $0.0240, overage rate
Avrea SaaS · Dedicated hardware · jobs ran from OVH (FR) SaaS · Dedicated hardware · jobs ran from OVH (FR)
Avrea 8 vCPU 8 vCPU 32 GB VM disk EPYC 4585PX $0.0944 5m 17s 1m 04s $0.0195 26s $0.0099 3m 47s $0.0651 4,557 204k 53k 108 11s 9.9k 10sp90 13m 17s $0.0160
RunsOn self-hosted · your AWS account · jobs ran from Amazon.com (US) self-hosted · your AWS account · jobs ran from Amazon.com (US)
RunsOn m8a.2xlarge · tmpfs 8 vCPU 32 GB tmpfs EPYC 9R45 best trade-off, $0.0198 5m 17s 1m 15s $0.0047 $0.0140 32s $0.0029 $0.0088 3m 31s $0.0123 $0.0345 3,796 3.8M 1.1M 164 5s 28k 15sp90 18s $0.0027on-demand$0.0084 $0.0084spot$0.0027
Blacksmith SaaS · bare metal in Phoenix, AZ · jobs ran from Secured Servers (US) SaaS · bare metal in Phoenix, AZ · jobs ran from Secured Servers (US)
Blacksmith 8 vCPU 8 vCPU 32 GB VM disk EPYC · model hidden $0.1013 5m 31s 1m 11s $0.0216 36s $0.0139 3m 44s $0.0659 4,000 223k 67k 105 12s 12k 9sp90 10s $0.0160
Warpbuild SaaS · WarpBuild / AWS / MacStadium · jobs ran from WarpBuild (US) and Amazon.com (US) SaaS · WarpBuild / AWS / MacStadium · jobs ran from WarpBuild (US) and Amazon.com (US)
Warpbuild 8 vCPU 8 vCPU 32 GB VM disk Ryzen 9 9950X +1 $0.1251 7m 13s 1m 30s $0.0259 44s $0.0147 4m 59s $0.0845 4,369 68k 37k 113 26s 4.6k 11sp90 14m 20s $0.0160
Ubicloud SaaS · Hetzner / Leaseweb (Germany) · jobs ran from Hetzner Online (DE) and Leaseweb Deutschland (DE) +1 more SaaS · Hetzner / Leaseweb (Germany) · jobs ran from Hetzner Online (DE) and Leaseweb Deutschland (DE) +1 more
Ubicloud premium 8 vCPU 8 vCPU 32 GB VM disk Ryzen 9 7950X3D $0.0858 9m 32s 1m 41s $0.0152 51s $0.0095 7m 00s $0.0611 3,692 20k 8.0k 49 56s 3.4k 20sp90 32s $0.0080
GitHub GitHub-hosted · Azure · jobs ran from Microsoft (US, CA, MX) GitHub-hosted · Azure · jobs ran from Microsoft (US, CA, MX)
GitHub 8-core 8 vCPU 32 GB VM disk Xeon 8370C +5 $0.3014 10m 59s 2m 09s $0.0510 1m 08s $0.0330 7m 42s $0.2174 2,888 18k 7.5k 123 31s 5.8k 1m 11sp90 1m 24s $0.0220
boat SaaS · Dedicated hardware (EU) · jobs ran from OVH (FR, PL) SaaS · Dedicated hardware (EU) · jobs ran from OVH (FR, PL)
boat 8 vCPU 8 vCPU 16 GB VM disk Ryzen 9 9950X +2 $0.0155 11m 48s 1m 50s $0.0025 1m 11s $0.0017 8m 47s $0.0113 3,595 66k 8.2k 61 1m 11s n/a –burst not run yet $0.0012
AWS CodeBuild self-hosted · your AWS account · jobs ran from Amazon.com (US) self-hosted · your AWS account · jobs ran from Amazon.com (US)
AWS CodeBuild large 8 vCPU 16 GB EBS Xeon 8488C +2 $0.3427 15m 30s 2m 12s $0.0493 1m 05s $0.0337 12m 13s $0.2597 2,889 3.0k 1.8k 170 34s n/a 21sp90 13m 33s $0.0200
Avrea arm64 SaaS · Dedicated hardware · jobs ran from Inios Oy (FI) SaaS · Dedicated hardware · jobs ran from Inios Oy (FI)
Avrea 8 vCPU 8 vCPU 32 GB VM disk Apple M5 Max · as stated by the provider $0.2752 5m 05s 57s $0.0536 30s $0.0320 3m 38s $0.1896 4,830 13k 21k 54 11s 5.8k 19sp90 25s $0.0480
RunsOn arm64 self-hosted · your AWS account · jobs ran from Amazon.com (US) self-hosted · your AWS account · jobs ran from Amazon.com (US)
RunsOn m9g.2xlarge · tmpfs 8 vCPU 32 GB tmpfs Neoverse-V3 $0.0184 5m 53s 1m 15s $0.0043 $0.0114 31s $0.0025 $0.0068 4m 07s $0.0117 $0.0320 2,473 2.5M 653k 286 5s 16k 19sp90 15m 24s $0.0025on-demand$0.0068 $0.0068spot$0.0025
Warpbuild arm64 SaaS · WarpBuild / AWS / MacStadium · jobs ran from Amazon.com (US) and MacStadium (US, IE) SaaS · WarpBuild / AWS / MacStadium · jobs ran from Amazon.com (US) and MacStadium (US, IE)
Warpbuild xfast (Apple M4 Pro) 12 vCPU 12 vCPU 28 GB VM disk Apple M4 Pro · as stated by the provider $1.27 6m 31s 1m 03s $0.1867 30s $0.1240 4m 58s $0.9573 3,219 5.6k 30k 77 55s 5.3k 16sp90 19s $0.1600
Namespace arm64 SaaS · US/Europe · jobs ran from Namespace Labs (US) SaaS · US/Europe · jobs ran from Namespace Labs (US)
Namespace Apple silicon 4x16 4 vCPU 16 GB VM disk CPU not reported $0.6391 7m 13s 1m 21s $0.1190 43s $0.0679 5m 09s $0.4522 4,679 22k 19k 127 22s 5.8k 12sp90 16s $0.0840, overage rate
Blacksmith arm64 SaaS · bare metal in Phoenix, AZ · jobs ran from Secured Servers (US) SaaS · bare metal in Phoenix, AZ · jobs ran from Secured Servers (US)
Blacksmith 8 vCPU 8 vCPU 32 GB VM disk Ampere-1a $0.1199 11m 00s 2m 43s $0.0292 1m 10s $0.0143 7m 07s $0.0765 1,356 28k 29k 94 18s 4.8k 12sp90 14s $0.0100
GitHub arm64 GitHub-hosted · Azure · jobs ran from Microsoft (US) GitHub-hosted · Azure · jobs ran from Microsoft (US)
GitHub 4-core 4 vCPU 16 GB network disk Neoverse-N2 $0.1320 14m 41s 3m 10s $0.0264 1m 27s $0.0139 10m 04s $0.0917 1,872 12k 5.9k 103 36s 2.6k 6sp90 6s $0.0080
Ubicloud arm64 SaaS · Hetzner / Leaseweb (Germany) · jobs ran from Leaseweb Deutschland (DE) and Hetzner Online (DE) SaaS · Hetzner / Leaseweb (Germany) · jobs ran from Leaseweb Deutschland (DE) and Hetzner Online (DE)
Ubicloud standard 8 vCPU 8 vCPU 32 GB VM disk Neoverse-N1 $0.0905 16m 38s 3m 48s $0.0203 1m 24s $0.0092 11m 26s $0.0610 1,305 112k 9.3k 57 49s 1.2k 35sp90 3m 32s $0.0050
Notes on the tablequeue, cost, spot, shapes, cell states
  • Queue, burst: 15 identical jobs per runner, queued at the same instant; median wait, p90 below.
  • It shows how fast a provider absorbs a spike; the concurrency limits of this account's plan are part of it.
  • “burst not run yet”: no burst number for that runner; its wait in build runs (all jobs started at once on our account) is in the cell's title, not ranked.
  • Cost per build: job duration × list price per minute, seconds as they ran, never rounded up to a billing increment.
  • Cost for all builds: the first column adds up the three builds' costs, for runners that finished all three. The chart's Builds pill picks one build instead (“Cost per Rust build”).
  • It is shaded in five steps by cost rank among the runners shown with 3+ runs, green the cheapest fifth, red the most expensive.
  • Time for all builds: the Rust, TypeScript and Docker build times added up, for runners that finished all three; the table's default order, fastest first. A runner missing a build shows –, the reason in its title, and follows those, ordered by its Rust build.
  • It is ranked and shaded like a build column, on the fewest runs of its three builds.
  • Workspace disk: 4k random writes at queue depth 32 and 4k reads at queue depth 1. Random reads, sequential reads and synced writes are on the disk page.
  • Best value: no runner shown is both faster and cheaper on that build. The chart draws these runners as a line, on linear or log axes (Scale).
  • Timing: the chart's time axis is the build steps, the whole job, or the job plus its wait (each run's shortest queue, median across runs). A wait capped by a plan is not ranked.
  • “Show: cost” ranks, shades and sorts the build columns by cost instead of wall time.
  • “RunsOn price: On-demand” ranks, shades and sorts RunsOn's costs at EC2 on-demand; every other provider has one list price.
  • RunsOn rows use EC2 spot prices, RunsOn's default; on-demand (OD) sits on the price column's second line and in each build cell's title.
  • Shading: top 2 of 9 on x64, top 1 of 7 on arm64 per column are tinted, the same number at the bottom faint; bold is the best machine. A result needs 3 runs (distinct workflow runs) for a shade or a rank.
  • Every size races: a provider rank counts each provider once, by its best variant at any size. The Size filter ranks and shades within one vCPU count.
  • Disk and cache rank every storage: a tmpfs workspace (RAM), a provisioned gp3 volume or local NVMe ranks like any other runner.
  • Shapes are vCPU and memory as configured, underlined dotted when the job saw other CPUs or memory.
  • failed links to the failed job · pending job not finished at fetch time · – not part of that suite (in the two summary columns: a build is missing, the reason in its title) · n/a step did not report, or with a : not run on purpose (the ? says why)