Comparison
CI runner prices compared: x64, ARM64, Windows and macOS
List prices for hosted CI runners from GitHub, CRACI, Blacksmith, Depot, Namespace, WarpBuild, Ubicloud, Tenki, Avrea, GitLab, Bitbucket, CircleCI, Buildkite, Harness and Azure Pipelines, normalized per vCPU and per GB of RAM, at every size they sell.
Updated
The short version
- Per vCPU, list prices differ fivefold. A 2 vCPU Linux x64 runner costs from $0.06 per vCPU-hour (Namespace within plan minutes, Ubicloud premium) to $0.30 (GitLab.com and Bitbucket extra minutes). GitHub-hosted sits at $0.18.
- ARM64 is usually cheaper, but not everywhere. GitHub, Blacksmith, WarpBuild and Ubicloud price ARM64 below x64. CRACI, Depot, Namespace and Harness charge one rate for both, and Avrea charges three times its x64 rate for ARM64.
- Size changes the rate at some vendors only. GitHub and GitLab.com get cheaper per vCPU as runners grow; CRACI, Blacksmith, Depot, WarpBuild, Avrea, Harness and CircleCI charge the same per vCPU at every size.
- Rounding can matter more than list price. Whole-minute billing turns a 20-second job into a 60-second charge.
- CRACI is one of the most affordable. At $0.002 per vCPU-minute ($0.12 per vCPU-hour), metered per second, it lists below GitHub on x64 and below the CI platforms that bill per minute, level with Blacksmith on x64, and above only the budget runners. It also records and controls what each build does.
Price per minute, per vCPU and per GB of RAM
Pick a platform and a size. Per vCPU-hour puts runners of different shapes on one scale; per GB RAM-hour shows who gives you more memory for the money, since memory per vCPU runs from 2 GB to 4 GB across these vendors. Hover over a bar for the runner, its billing rule and any caveat.
Linux x64, 2 vCPU, per vCPU-hour, lowest first
On Linux x64 at 2 vCPU, the budget runners lead: Ubicloud and Namespace at $0.06 per vCPU-hour, then Blacksmith, WarpBuild, Tenki, Avrea and CRACI at $0.12, ahead of Harness at $0.15 and GitHub-hosted, Depot and CircleCI at $0.18. The CI platforms price their own hosted compute higher: Buildkite at $0.24, and GitLab.com and Bitbucket at $0.30 when you pay for extra minutes. Namespace's rate is the one inside its $100-a-month Team plan; overage costs 1.5x.
Azure Pipelines sells capacity differently: $40 a month for each parallel job, with unlimited minutes, on one hosted size of 2 vCPU and 7 GB. The charts show our estimate for a job busy 8 hours on each of 22 working days, $0.114 per vCPU-hour. That is the cheapest it gets at that volume. Builds come in bursts, and teams buy a job for each build they want running at once, so most jobs sit idle for part of the day and cost more per minute used:
| Capability | Busy hours a month | Per minute | Per vCPU-hour |
|---|---|---|---|
| Busy the whole working day | 176 | $0.0038 | $0.114 |
| Busy 50% of the working day | 88 | $0.0076 | $0.227 |
| Busy 25% of the working day | 44 | $0.0152 | $0.455 |
Per GB of RAM the order shifts. Namespace, Tenki, Bitbucket and CircleCI's Docker classes give 2 GB per vCPU, CRACI 3 GB, and GitHub, Depot, WarpBuild and Avrea 4 GB. A memory-hungry build may need a larger size on a 2 GB vendor, which closes much of the gap.
How price changes with runner size
A flat line means one rate per vCPU at every size. CRACI, Blacksmith, Depot, WarpBuild, Ubicloud, Avrea, Harness and CircleCI price that way. GitHub and GitLab.com discount larger runners, and Namespace's 64 vCPU shape costs more per vCPU than its smaller ones. Hover over a vendor in the legend to pick out its line.
Price per vCPU-hour by runner size, Linux x64
GitHub's discount is steepest on ARM64: its 32-core arm64 runner costs $0.050 per minute, about $0.094 per vCPU-hour, below CRACI's $0.12. On x64 at 32 cores GitHub lists $0.082 per minute, and CRACI's $0.064 stays about 22% lower.
ARM64 against x64
The same vendor, the same size, two architectures. The dot on the left is the cheaper one.
ARM64 against x64, price per vCPU-hour at 2 vCPU
ARM64 is where the cheapest managed runners pull furthest ahead. Ubicloud's ARM64 runners cost less than its premium x64, and Blacksmith charges 37.5% less for ARM. Avrea goes the other way: its ARM64 runners run on Apple M5 Max hardware and cost three times its x64 rate. CRACI runs native ARM64 at the same rate as x86-64, so moving a build between the two changes nothing on the bill; ARM64 capacity on CRACI is limited today.
Windows, macOS and GPU runners
Windows runners cost 1.3 to 2 times the Linux rate of the same size, and macOS runners billed per minute run from $0.06 to $0.24 per minute. Azure Pipelines is the exception: one $40 parallel job runs Linux, Windows or macOS (Intel, 3 vCPU) at the same price. GPU runners are rare: GitHub, GitLab.com and CircleCI offer them hosted, and AWS CodeBuild in the cloud. CRACI runs Linux only today, with Windows and macOS on the roadmap; the runner is chosen per job, so these jobs can stay where they are.
macOS, per minute, lowest first
What a month costs: the calculator
List prices tell half the story. How a vendor rounds each job decides the rest, especially for pipelines with many short jobs. Enter your workload and the calculator applies each vendor's own rule.
Compute cost per month: 20,000 jobs of 90 seconds on 2 vCPU x64, about 30,000 minutes of run time
CRACI $120 against $240 on GitHub-hosted: 50% less at list prices, before the speed difference.
The calculator compares compute at list prices only. It leaves out speed: CRACI runs builds about twice as fast as GitHub-hosted runners, thanks to faster hardware, shorter queue times and caching, so the same job bills fewer minutes. Other providers make speed claims of their own, which we have not benchmarked against CRACI.
How each vendor bills
| Capability | Billing | Free usage | Plan and conditions |
|---|---|---|---|
| CRACI | Per second | None | No monthly fee: build minutes only, $0.002 per vCPU-minute |
| GitHub-hosted | Each job rounded up to the whole minute | 2,000 to 50,000 minutes a month by plan, standard runners only | Larger runners need Team or Enterprise Cloud and never use included minutes |
| Blacksmith | Not stated on the pricing page | 3,000 x64 2 vCPU minutes a month | No monthly fee |
| Depot | Tracked per second, billed in whole minutes per month | 7-day trial | Developer $20 a month with 2,000 minutes; Startup $200 with 20,000 |
| Namespace | One-minute minimum; the next 15 seconds past a minute are free | 30-day trial | Rate within plan minutes: Team $100 a month with 100,000 unit minutes; overage 1.5x |
| WarpBuild | Per minute | Free usage allowance, amount not stated | No platform fee |
| Ubicloud | Per minute | $2.50 credit a month | Premium runners, the default for new accounts; standard x64 is $0.00125 per 2 vCPU minute |
| Tenki | Per minute at per-second precision | $100 sign-up credit | Starter up to 4 vCPU; Team $200 a month (with $100 of credit) up to 16 vCPU |
| Avrea | Per minute per job | 3,000 2 vCPU minutes a month | No monthly fee; static IPs $100 each a month |
| GitLab.com | Per second, times the machine's cost factor | 400 to 50,000 compute minutes a month by tier | Extra compute minutes $10 per 1,000; sizes above medium need Premium or Ultimate |
| Bitbucket Pipelines | Step duration times the size multiplier | 50 to 3,500 build minutes a month by plan | Extra minutes $10 per 1,000, sold in monthly blocks; 4x and larger need a paid plan |
| CircleCI | Per second, rounded up to the next credit | 30,000 credits a month on Free | Credits $15 per 25,000 ($0.0006 each); Performance from $15 a month |
| Buildkite hosted | Per second, no minimums or rounding | 2,000 Linux vCPU-minutes a month on Free | Pro $30 per active user a month with 4,000 vCPU-minutes; ARM64 on request for Enterprise |
| Harness CI Cloud | Rounded to the nearest minute | 2,000 credits a month | Paid plans through sales |
| Azure Pipelines | $40 a month per parallel job, unlimited minutes; jobs run up to 6 hours | One job with 1,800 minutes a month, up to 60 minutes per run; the first paid job replaces it | Our estimate: one job busy 8 hours on each of 22 working days. Idle time raises the rate. One size per OS, no larger hosted agents |
| AWS CodeBuild | Rounded up to the whole minute | 100 small build minutes a month | On-demand, us-east-1 |
| RunsOn (AWS spot) | AWS bills the instances per second | 15-day trial | AWS spot compute in us-east-1 as RunsOn lists it, plus a flat license from about $348 (€300) a year |
| Self-hosted on Hetzner, compute only | Monthly server rent, whether jobs run or not | None | Our estimate: Hetzner AX42 servers at $114.84 (€99) a month plus $56.84 (€49) setup, one job per 2 vCPU, 60,000 minutes a month. No upkeep |
| Self-hosted on Hetzner, with upkeep | Monthly server rent plus engineering time | None | Our estimate: the same servers plus 8 hours of upkeep a month at $85 an hour, 60,000 minutes a month |
Self-hosted runners: the full math
Self-hosted runners have no per-minute price, so they are easy to leave out of a comparison like this one. GitHub charges nothing per minute for them as of September 2026; it postponed a planned $0.002 per-minute platform charge. What you pay for is the servers and the time it takes to run them. Here is that math on Hetzner, one of the cheapest places to rent build servers in Europe, with every assumption stated so you can swap in your own.
1. The server
A Hetzner AX42 dedicated server (AMD Ryzen 7 PRO 8700GE, 8 cores and 16 threads, 64 GB of RAM) costs $114.84 (€99) a month plus a $56.84 (€49) setup fee, excluding VAT, with no minimum term. Spreading the setup fee over a year: $114.84 + $56.84 ÷ 12 = $119.58 a month. Counting each thread as a vCPU, as cloud providers do, it runs eight 2 vCPU jobs at once with 8 GB of RAM each.
2. Price per vCPU-minute, if it never sits idle
A month has about 730 hours, or 43,800 minutes. 16 vCPUs × 43,800 minutes = 700,800 vCPU-minutes. $119.58 ÷ 700,800 = $0.000171 per vCPU-minute, or $0.00034 for a 2 vCPU minute. That is the floor, and no real fleet reaches it.
3. Price per vCPU-minute, at realistic use
A self-hosted fleet is sized for the busy hours and paid for around the clock. If it is busy 10 hours on each of 22 working days, that is 220 of 730 hours, about 30%. $0.000171 ÷ 0.3 = $0.000569 per vCPU-minute, or $0.00114 for a 2 vCPU minute: under a third of CRACI's $0.004 and about a fifth of GitHub-hosted's $0.006.
4. The engineering time
Someone keeps the hosts patched, the runner software and build images current, and the fleet scaling with the queue. We use the same illustrative inputs as our managed vs self-hosted cost model: 8 hours a month at $85 an hour, or $680 a month. That cost does not shrink with usage, so how much it adds per minute depends on how many minutes you run.
5. A worked example
Take 60,000 build minutes a month on 2 vCPU runners: 120,000 vCPU-minutes. At 30% busy, one AX42 delivers 210,240 vCPU-minutes a month, so one server is enough. It leaves no spare for a failed host, which flatters self-hosting.
- Compute only: $119.58 ÷ 60,000 minutes = $0.00199 per minute
- Upkeep: $680 ÷ 60,000 minutes = $0.01133 per minute
- With upkeep: $799.58 a month, or $0.01333 per minute
- CRACI: 60,000 × $0.004 = $240 a month. GitHub-hosted: 60,000 × $0.006 = $360 a month.
These two per-minute prices are the self-hosted lines in the charts above. The calculator prices self-hosting as whole servers plus the fixed upkeep, so it follows your workload.
6. How it changes with volume
| Capability | Hetzner servers | Self-hosted a month, with upkeep | Per minute | CRACI a month |
|---|---|---|---|---|
| 60,000 minutes | 1 | $120 + $680 = $800 | $0.0133 | $240 |
| 300,000 minutes | 3 | $359 + $680 = $1,039 | $0.0035 | $1,200 |
| 600,000 minutes | 6 | $717 + $680 = $1,397 | $0.0023 | $2,400 |
The fixed upkeep is spread thinner as volume grows. On these inputs self-hosting costs more than CRACI below roughly 260,000 minutes a month and less above it. Holding upkeep at 8 hours flatters the larger fleets: six servers take more looking after than one.
What the math leaves out
- Security hardening. GitHub advises against self-hosted runners for public repositories and recommends ephemeral, isolated runners; building that isolation is more of the upkeep.
- Build evidence. A plain runner produces no SBOM, egress policy or network trace. On CRACI these come with every job; on your own servers they are tooling to build and maintain.
- Peaks and failures. One server queues jobs when more than eight run at once and stops the builds when it fails. A second server for headroom doubles the compute cost at low volume.
- Elastic cloud servers. Hetzner Cloud's dedicated-vCPU CCX33 is $161.23 (€138.99) a month for 8 vCPUs, about 2.7 times the AX42 per vCPU, and cloud servers are billed for every started hour, so a fresh server per job pays an hour for a five-minute build. Its cheapest shared plans were listed as unavailable when we checked.
Where CRACI fits
If the lowest price per vCPU is the only criterion, Ubicloud, Namespace or runners in your own AWS account will win. CRACI is priced to sit below GitHub-hosted runners on x64 and below the CI platforms that bill per minute, with per-second billing and no monthly fee, but it does not compete on price alone.
It competes on what the runner records and controls. While each job runs, CRACI records every package it fetched and turns that into an SBOM with a stated completeness, runs the job under an egress policy that is validated before it starts and fails closed, and keeps a network trace of every connection. Most runners here sell compute and speed; CRACI adds supply chain evidence from every build to the same minute.
See CRACI pricing, or book a demo to price one of your own workflows.
Compare one provider with CRACI
Runner providers: GitHub-hosted runners, Blacksmith, Depot, Namespace, WarpBuild, Ubicloud, RunsOn and Avrea. CI platforms: GitLab CI, CircleCI, Buildkite and Harness. For everything beyond price, see GitHub Actions runner providers compared.
How we compared
- Sources: each vendor's own pricing page or documentation, checked September 29, 2026, and Azure Pipelines on October 2. No reseller or third-party price lists.
- Currency: all prices in US dollars. Hetzner and RunsOn list in euros; their prices are converted at €1 = $1.16, with the euro original in parentheses.
- Rates: the pay-as-you-go or overage rate, before free minutes, included minutes and plan fees. Namespace is shown at its in-plan rate. GitLab.com and Bitbucket are shown at their price for extra minutes, $10 per 1,000, times each machine's multiplier.
- Derived sizes: Blacksmith prints only its 2 vCPU price and states that larger sizes scale with vCPU count; those sizes are marked in the charts.
- Cloud references: AWS CodeBuild is on-demand in us-east-1. RunsOn shows the AWS spot prices it lists for its default instances in us-east-1, plus a license from about $348 (€300) a year that is not in the chart. Both are off by default.
- Self-hosted: our estimate for Hetzner AX42 dedicated servers, not a list price. The inputs and the math are in the self-hosted section above; the upkeep hours and hourly cost are illustrative.
- Azure Pipelines: our estimate, not a list price. Microsoft sells Microsoft-hosted parallel jobs at $40 a month with unlimited minutes; the charts divide that by one job busy 8 hours on 22 working days. The calculator prices it as one job per job running at once at peak.
- Not included: Cirun, Actuated and Cirrus Runners, which charge per repository or per server; and BuildJet, which stopped running jobs on March 31, 2026.
CI runner pricing FAQ
Short answers on runner prices, ARM64 and billing.
What is the cheapest CI runner per minute?
Among managed runners, Ubicloud and Namespace list the lowest per-vCPU prices as of September 2026: Ubicloud's standard 2 vCPU x64 runner is $0.00125 per minute, and Namespace charges $0.001 per vCPU-minute within plan minutes. Running spot instances in your own AWS account with RunsOn costs less still in compute, plus a license and the work of running it.
Are ARM64 runners cheaper than x64?
At several providers, yes. GitHub, Blacksmith, WarpBuild and Ubicloud list ARM64 below x64, GitHub by about 39% at 32 cores. CRACI, Depot, Namespace, GitLab and Harness charge the same rate for both. Avrea's ARM64 runners, on Apple M5 Max hardware, cost three times its x64 rate, and CircleCI's ARM classes cost more than its x64 Docker classes above 4 vCPU.
How much does a GitHub Actions runner cost per vCPU?
GitHub's standard 2-core Linux x64 runner costs $0.006 per minute, or $0.18 per vCPU-hour. Larger x64 runners drop to about $0.154 per vCPU-hour at 32 cores, and arm64 larger runners to about $0.094. CRACI charges $0.002 per vCPU-minute at every size, or $0.12 per vCPU-hour.
Why compare price per vCPU-hour instead of per minute?
Runners come in different shapes. One vendor's smallest runner has 2 vCPU and 4 GB of RAM, another's 2 vCPU and 8 GB, and a third starts at 4 vCPU. Dividing the per-minute price by the vCPUs, and by the RAM, puts every runner on the same footing. Per minute is still the number on the bill, so every chart can switch between them.
Does rounding change what a runner costs?
For short jobs, a lot. GitHub, AWS CodeBuild, WarpBuild, Ubicloud and Avrea bill each job in whole minutes, and Namespace has a one-minute minimum. A 20-second lint job costs three times its run time there. CRACI, Depot, GitLab, CircleCI and Buildkite meter by the second. The calculator on this page applies each vendor's rule.
How much does an Azure Pipelines minute cost?
Azure Pipelines does not charge per minute. A Microsoft-hosted parallel job costs $40 a month with unlimited minutes, and runs one job at a time on 2 vCPU and 7 GB of RAM. Busy 8 hours on every working day, that is about $0.0038 a minute, or $0.114 per vCPU-hour, close to CRACI's $0.12. Busy half the working day, it is $0.227. Teams buy a job for each build they want running at once, so the jobs bought for the busiest hour sit idle the rest of the day.
Is it cheaper to self-host GitHub Actions runners?
In compute, yes. On a rented Hetzner AX42 server, a fleet that is busy 30% of the month costs about $0.0011 per 2 vCPU minute, against $0.004 on CRACI and $0.006 on GitHub-hosted. The engineering time is what changes the answer: with 8 hours of upkeep a month at $85 an hour, 60,000 minutes a month cost about $800 self-hosted against $240 on CRACI. Past roughly 260,000 minutes a month, self-hosting is cheaper on price alone, before security hardening and build evidence.
Does CRACI offer Windows, macOS or GPU runners?
Not today. CRACI runs Linux on x86-64 and ARM64, with Windows and macOS on the roadmap. The runner is chosen per job, so Windows and macOS jobs can stay where they are while Linux jobs move to CRACI.
Price your own pipeline on CRACI
Book a demo and we will run one of your workflows on CRACI and compare cost, build time and the SBOM with the runner you use today.
Book a demo