Skip to content
Latchkey

BuildJet vs GitHub-Hosted Runners: Is It Still Half Price?

BuildJet lists Linux 2 vCPU at $0.004/min against GitHub-hosted list of $0.006/min. That is 33% cheaper, not the 50% the marketing still claims - GitHub cut its price and the claim did not follow.

BuildJet is one of the longest-running drop-in replacements for GitHub-hosted runners: install the app, change runs-on, and jobs execute on BuildJet hardware. The marketing line is that usage price is half the price of GitHub Actions.

That claim is now out of date, and it is worth being precise about why, because the same staleness affects several competitors. It was accurate when GitHub listed Linux 2-core at $0.008/min. GitHub has since cut the standard Linux 2-core x64 rate to $0.006/min. Against $0.006, BuildJet at $0.004 is 33% cheaper. Still a real saving, just not the advertised one.

And the usual precondition: standard GitHub-hosted runners are free and unlimited on public repositories, at 4 vCPU and 16 GB. Everything below assumes a private repository. Figures verified 2026-08-20.

Published Linux rates, private repository

SizeGitHub-hostedBuildJet AMDBuildJet ARM
2 vCPU$0.006/min (8 GB)$0.004/min (8 GB)$0.004/min (3 GB)
4 vCPU$0.012/min$0.008/min (16 GB)$0.008/min (6 GB)
8 vCPU$0.022/min$0.016/min (32 GB)$0.016/min (12 GB)
16 vCPU$0.042/min$0.032/min (64 GB)$0.032/min (24 GB)
32 vCPU$0.082/min$0.048/min (64 GB)$0.064/min (48 GB)

The saving, stated accurately

BuildJet undercuts GitHub-hosted list at every published Linux size. The margin is a consistent 33% at the low end and widens at 32 vCPU, where BuildJet AMD at $0.048 sits 41% under GitHub-hosted at $0.082.

SizeGitHub-hostedBuildJet AMDActual saving
2 vCPU$0.006$0.00433%
4 vCPU$0.012$0.00833%
8 vCPU$0.022$0.01627%
16 vCPU$0.042$0.03224%
32 vCPU$0.082$0.04841%

Watch the ARM memory ratio

The ARM and AMD columns are priced identically but are not equivalent machines. BuildJet ARM ships substantially less RAM at every size, so the same price buys a materially smaller box.

  • 2 vCPU: 8 GB on AMD against 3 GB on ARM, at the same $0.004/min.
  • 8 vCPU: 32 GB on AMD against 12 GB on ARM, at the same $0.016/min.
  • If a job is memory-bound rather than CPU-bound, the ARM option at the same price can be slower or fail outright on out-of-memory.

Concurrency and cache

  • Default concurrency is 64 AMD vCPUs and 32 ARM vCPUs. A wide matrix can hit that ceiling and queue.
  • Concurrency extensions add 100 vCPUs for $300/month, which is a real cost to fold into any comparison at scale.
  • Cache storage is 20 GB per repository weekly, against the 10 GB per-repository limit on GitHub-hosted, with oldest entries cleared automatically.
  • Accounts get a one-time $5 credit rather than a recurring free-minute allowance, so unlike Blacksmith at 3,000 free minutes per month there is no ongoing free tier.

Switching, and switching back

One line each way, per job. Point the most expensive job at BuildJet, compare two weeks of real runs, and expand only if the numbers survive contact with your actual pipeline.

workflow.yml
jobs:
  build:
    # GitHub-hosted
    runs-on: ubuntu-latest

    # BuildJet
    runs-on: buildjet-4vcpu-ubuntu-2204

    # Latchkey
    runs-on: latchkey-small

What a cheaper minute does not fix

BuildJet lowers the price of a minute. It does not change how many minutes you burn on failures that have nothing to do with your code. A registry timeout, a browser binary that did not install, a transient dependency resolution error: the job fails, the failed minutes are billed, the re-run is billed, and the pipeline waits for a human. A 33% cheaper minute applied to a pipeline that re-runs 10% of its jobs is still paying for those re-runs, just at a discount.

Decide with your own repository

  • Both tools in a mature category can do the job. What differs is behaviour on your codebase, which takes an afternoon to measure and beats any feature table.
  • Benchmark the cold path with no cache. Warm local runs favour whatever you already have cached, which is the one condition CI never has.
  • Price the switching cost honestly: lockfile or config format, stricter resolution surfacing latent bugs, and every developer plus every runner having to move together.

The verdict

Public repository: stay on GitHub-hosted, which is free and unlimited there.

Private repository over your included minutes: BuildJet is a straightforward 24-41% saving depending on size, with a bigger cache allowance than GitHub-hosted and a one-line switch. Check the ARM memory ratio if you are tempted by the identical ARM pricing, and check the 64 vCPU default concurrency against your matrix width.

Private repository inside your included minutes: moving is likely a downgrade. GitHub includes 2,000 to 3,000 private-repo minutes on Free, Pro, and Team, and BuildJet offers only a one-time $5 credit, so a small project trades a zero bill for a metered one.

Frequently asked questions

Is BuildJet half the price of GitHub Actions?
Not any more. That claim was calibrated when GitHub listed Linux 2-core at $0.008/min. GitHub now lists $0.006/min, so BuildJet at $0.004/min is 33% cheaper rather than 50%. The saving is real but smaller than the marketing states.
How much does BuildJet cost?
Published Linux rates are $0.004/min at 2 vCPU, $0.008 at 4, $0.016 at 8, $0.032 at 16, and $0.048 at 32 vCPU on AMD. ARM matches those prices up to 16 vCPU and is $0.064 at 32 vCPU, but ships less RAM at every size.
Does BuildJet have a free tier?
No recurring one. Accounts get a one-time $5 credit to trial the service. That is different from GitHub 2,000-3,000 included private-repo minutes per month, and from Blacksmith 3,000 free minutes per month, so small projects should check whether they are already inside a free allowance.
How much cache does BuildJet give me?
20 GB per repository weekly, with oldest entries cleared automatically as you approach the limit. That is double the 10 GB per-repository cache limit on GitHub-hosted.
Is BuildJet ARM the same as BuildJet AMD?
Only in price. ARM ships notably less memory at the same rate: 3 GB against 8 GB at 2 vCPU, and 12 GB against 32 GB at 8 vCPU. For memory-bound builds the ARM option at the same price can be the slower or failing choice.
What are the concurrency limits?
The default is 64 AMD vCPUs and 32 ARM vCPUs running at once. Beyond that, jobs queue. Concurrency extensions add 100 vCPUs for $300/month, which should be included in any at-scale cost comparison.
Does BuildJet retry failed jobs?
No. BuildJet provides faster and cheaper compute. Transient failures fail the job, bill the failed minutes and the re-run, and wait for a human, exactly as on GitHub-hosted.

Related guides

References

Latchkey runs the same jobs at $0.0025/min against $0.004/min, and repairs transient failures. Start free → 30-day trial · No credit card