Skip to content
Latchkey LogoLatchkey home

Ubicloud vs Blacksmith for GitHub Actions runners

Ubicloud vs Blacksmith is the cheapest published Linux rate in this category against the one that asks least of you. Ubicloud lists $0.00125 a minute for a 2 vCPU runner with 8 GB, a third of Blacksmith's $0.004, and the catch is not hidden: new accounts are put on the premium tier at $0.002 by default, and Ubicloud sells no Windows and no macOS at all.

Rate ladder by size: Ubicloud standard and premium against Blacksmith, Latchkey and GitHub-hosted
Published Linux x64 rates by machine size, read 21 September 2026. The premium column is the one a new Ubicloud account is billed at until the tier is switched off in account settings.

Ubicloud runs an open-source cloud on bare metal and sells GitHub Actions runners from it, with the whole stack licensed under AGPL v3 if you would rather operate it yourself. Its runners are VMs in data centres in Germany, its x64 standard machines are AMD EPYC 9454P, its premium machines are AMD Ryzen 9 7950X3D chosen for single-thread speed, and its arm64 machines are Ampere Altra Q80-30 with a dedicated core per vCPU. Every account gets a $2.50 monthly credit, which its docs put at 1,250 minutes of 2 vCPU runner time.

Blacksmith sells managed runners on its own bare metal in four regions at one published rate per platform, with 3,000 free minutes a month, a GitHub App to install and a colocated cache that intercepts actions/cache without a workflow change. It sells Windows and macOS as well as Linux, and its differentiators are add-ons you buy by the gigabyte rather than tiers you pick between.

Every cell below was read from the vendor's own public pricing or documentation page on 21 September 2026. Where a vendor does not publish a number, the cell says "not published" instead of carrying a guess.

Ubicloud, Blacksmith and Latchkey side by side (read 21 September 2026)

UbicloudBlacksmithLatchkey
Price per minute, 2 vCPU Linux x64$0.00125 standard or $0.002 premium (2 vCPU, 8 GB RAM, 75 GB disk). Premium is enabled by default for new accounts$0.004 (2 vCPU, 8 GB RAM, 80 GB disk)$0.0025 (2 vCPU, 8 GB RAM, 100 GB disk)
Price per minute, 4 vCPU Linux x64$0.0025 standard or $0.004 premium (4 vCPU, 16 GB RAM, 150 GB disk)$0.008 (4 vCPU, 16 GB RAM, 80 GB disk)$0.005 (4 vCPU, 16 GB RAM, 100 GB disk)
Free tierA $2.50 monthly account credit, which its docs describe as 1,250 minutes of 2 vCPU runner time. A valid card is required before any resource is created3,000 free minutes a month, printed on every runner card30-day trial, then 2,000 included minutes a month on Developer, 4,000 on Launch, 6,000 on Scale
Billing granularityPer minute, billed monthlyNot publishedPer minute
Runner sizes and OS2, 4, 8, 16 and 30 vCPU on Linux x64 and arm64, Ubuntu 22.04, 24.04 and 26.04 by label suffix. No Windows or macOS labels are published2 to 32 vCPU on Linux x64 and arm64; Windows Server 2025 at 2 to 32 vCPU; macOS M4 at 6 and 12 vCPU2, 4, 8 and 16 vCPU, Ubuntu 24.04 on x86_64 only. arm64, Windows and macOS are not offered
Cache: type, limit, persistenceTransparent cache, on by default, 30 GB free per repository per week in its documentation, with the premium runner card advertising 100 GB and no unit; the oldest entries are deleted past the limit, and entries unused for 7 days are removed. Branch isolation matches GitHub by default and can be switched offColocated cache intercepts actions/cache, 25 GB free per repo per week; sticky disks are ext4 volumes, 5 per job, evicted after 7 days idle, $0.50/GB/monthSize not published. latchkey-dev/cache-action@v1 swaps one line for actions/cache, keeping path, key and restore-keys; entries are isolated per organization, versioned by OS, kept 14 days; a failed restore warns rather than failing the job
Docker build accelerationThe transparent cache covers docker/build-push-action with type=gha, so layer caching needs no action swapDocker layer caching as a $0.50/GB/month add-on, driven by useblacksmith/setup-docker-builder@v2 and useblacksmith/build-push-action@v2latchkey-dev/docker-cache-action@v1, layers held in a Latchkey-managed private registry per organization
Concurrency limitsNot publishedNone imposed, per the runner docsNot published; warm-pool capacity varies by plan
Where jobs runUbicloud VMs across data centres in Germany, allocated for availability. Its public IPv4 ranges are published for firewall allowlistsBlacksmith's own regions: Ashburn, Phoenix, Amsterdam and FrankfurtLatchkey's own AWS estate on m6a-class hosts, one job per runner, private network, destroyed after the job
Self-healing or retriesNot offeredNot offeredBuilt in: transient failures are diagnosed and retried inside the run
Setup change requiredInstall the Ubicloud Managed Runners GitHub App, add a card, then change ubuntu-latest to ubicloud-standard-2Install the GitHub App, then change the runs-on labelA runs-on label change. GitHub organization accounts only

Two tiers, one of them switched on for you

Ubicloud is the only vendor in this corpus that sells the same shape twice. Standard x64 runners are AMD EPYC 9454P with two vCPU per physical core; premium x64 runners are AMD Ryzen 9 7950X3D, chosen for clock speed on monorepos and test-heavy workflows, and cost 60% more at every size. Its documentation states new accounts get premium by default and that you turn it off in account settings.

That matters for a comparison, because the rate you will actually be charged on day one is $0.002 and not the $0.00125 that makes the headline. Both are still under Blacksmith at every size, so the conclusion does not change, but the margin does: three times cheaper becomes twice cheaper. Check which tier your account is on before you model a month.

ShapeUbicloud standardUbicloud premiumBlacksmithLatchkey
2 vCPU, 8 GB x64$0.00125$0.002$0.004$0.0025
4 vCPU, 16 GB x64$0.0025$0.004$0.008$0.005
8 vCPU, 32 GB x64$0.005$0.008$0.016Published per size
16 vCPU, 64 GB x64$0.010$0.016$0.032Published per size
30 vCPU, 120 GB x64$0.01875$0.030Not sold at 30; 32 vCPU at $0.064Not offered above 16
2 vCPU arm64$0.00125 with 6 GBNot offered on arm64$0.0025Not offered

Speed

Not benchmarked yet; the runner benchmark report will replace this section. We have not run the same workload on these runners ourselves, and until we have there is no number here worth quoting.

The cheap way to get a real answer is to point one slow job at each candidate for a fortnight, because runner selection is per job and the Actions run log hands you the timings for free.

Ubicloud publishes run times for five open-source projects against GitHub runners, dated January 2025, and attributes the difference to newer hardware than GitHub's Azure VMs. Blacksmith states it is 2x faster than GitHub's runners and builds its savings claim on that. Both are vendor numbers, and neither says anything about how these two compare with each other, which is the question this page is about.

The one structural difference worth knowing before you test is where the machines are. Ubicloud allocates runner VMs across data centres in Germany. If your registry, your package mirror or your test fixtures live in a United States region, every dependency pull crosses an ocean and the rate advantage is partly spent on latency you did not budget for. Blacksmith runs in Ashburn, Phoenix, Amsterdam and Frankfurt, so it has a side of the Atlantic either way.

Cost: the same month, and what happens to macOS

The workload every comparison here uses: 10,000 Linux minutes at 2 vCPU plus 2,000 macOS minutes on a private repository. Ubicloud sells no macOS runner, so that half of its bill goes to GitHub-hosted, which is also true of Latchkey.

10,000 Linux minutes at 2 vCPU2,000 macOS minutesMonthly total
Ubicloud standard$12.50, less the $2.50 creditNot offered: $124 on GitHub-hosted$134
Ubicloud premium, the default$20.00, less the $2.50 creditNot offered: $124 on GitHub-hosted$141.50
Blacksmith$28 after 3,000 free minutes$160 at $0.08/min$188
GitHub-hosted$60 at $0.006/min$124 at $0.062/min$184
Latchkey$25 at $0.0025/minNot offered: $124 on GitHub-hosted$149 plus $5 to $49 a month for the plan

Ubicloud takes the month on Linux and gives most of it back on everything else. On Linux compute alone it is $10 against $28, a gap Blacksmith's free minutes narrow but do not close. On macOS it does not compete at all, so a pipeline that builds iOS is paying GitHub's $0.062 a minute where Blacksmith would have charged $0.08 for a faster machine, and the two rows end up within $50 of each other on a bill dominated by Apple silicon. Latchkey's own plan is $5 to $49 a month on top of that compute, and its 2,000 to 6,000 included minutes are not netted off, so the figure is gross on both counts.

Then compare what the free cache holds, because both give one away and the sizes differ. Ubicloud's transparent cache is 30 GB per repository per week, which it calls 3x GitHub's default; Blacksmith's colocated cache is 25 GB. Both intercept actions/cache with no workflow change, and both then run out. Past the allowance the models diverge: Ubicloud deletes your oldest entries, Blacksmith sells sticky disks at $0.50 per GB per month. Fifty gigabytes of Docker layers is $25 a month on Blacksmith and not purchasable on Ubicloud.

For what the equivalent looks like on stock GitHub-hosted runners, where the store is 10 GB and shared with type=gha Docker layers, see GitHub Actions cache size limit. That page is also the one to read before assuming a bigger free cache solves a cache that is thrashing, because the usual cause is a key that changes every run rather than an allowance that is too small.

Reliability

Neither publishes a GitHub Actions SLA on the pages read here. What they publish instead is different in kind. Blacksmith states it imposes no limit on simultaneous jobs or vCPUs, which is a capacity promise. Ubicloud publishes its IP ranges so you can allowlist them, publishes its image build process, and publishes its source under AGPL v3, which is a transparency promise. Those are answers to different questions.

The image process is worth reading. Ubicloud builds its x64 images from the HashiCorp packer templates GitHub publishes in actions/runner-images, and deliberately deploys a new one a few days after GitHub rather than the same day, because GitHub has shipped images it then had to roll back. The consequence is precise: for a few days a month your runner image is behind ubuntu-latest, and a workflow that depends on a brand-new preinstalled tool will notice.

The failure neither handles is the mechanical one: a registry timeout, a browser binary that did not download, an out-of-memory kill at minute nine. The run bills, the re-run bills, and the merge waits for a person.

When to choose Ubicloud

  • Your pipeline is Linux and your priority is the rate. Nothing else in this corpus publishes $0.00125 a minute for a 2 vCPU machine with 8 GB.
  • You build arm64 and want it cheap. Its arm64 runners are Ampere Altra Q80-30 with a dedicated physical core per vCPU, at the same $0.00125 as the standard x64 tier.
  • Your infrastructure is already in Europe, so the German data centres are an advantage rather than an ocean.
  • You want the option of running the platform yourself. The stack is AGPL v3, which is a real exit and not a marketing line.
  • Your cache is large but not enormous. Thirty gigabytes free per repository per week is the most generous free cache here, and past it you lose the oldest entries rather than gaining a bill.

When to choose Blacksmith

  • You need Windows or macOS beside Linux on one invoice. Ubicloud sells neither, and splitting a pipeline across two vendors costs more than the rate difference on most bills.
  • Your jobs are in the United States and the latency to a German data centre would be spent on every dependency pull.
  • You want to buy your way out of a cache problem. Sticky disks at $0.50 per GB per month are a purchase; Ubicloud's answer past 30 GB is eviction.
  • You want a standing free tier rather than a credit. Three thousand minutes a month is a real allowance and does not require a card to create the first runner.
  • You want an explicit position on concurrency. Blacksmith publishes that it imposes no limit; Ubicloud publishes no number at all.

Switching: the exact diff

Both are a GitHub App install and a label. Neither needs a cache change, because both intercept actions/cache transparently, which means you can move a job back by reverting one line and the keys still work. Test them on the same workflow rather than in sequence, so the comparison is same-commit.

.github/workflows/ci.yml
 jobs:
   test-on-ubicloud:
-    runs-on: ubuntu-latest
+    runs-on: ubicloud-standard-4
     steps:
       - uses: actions/checkout@v7
       - uses: actions/cache@v4
         with:
           path: ~/.npm
           key: npm-${{ hashFiles('package-lock.json') }}
       - run: npm ci && npm test

   test-on-blacksmith:
-    runs-on: ubuntu-latest
+    runs-on: blacksmith-4vcpu-ubuntu-2404
     steps:
       - uses: actions/checkout@v7
       - uses: actions/cache@v4
         with:
           path: ~/.npm
           key: npm-${{ hashFiles('package-lock.json') }}
       - run: npm ci && npm test

The verdict

If your pipeline is Linux and stays Linux, Ubicloud is the cheaper buy by a margin nothing else here matches, and the open-source stack underneath it is a genuine exit rather than a slogan. Two things have to be said in the same breath. The rate you will be charged on a new account is the $0.002 premium tier rather than the $0.00125 headline until you change it, and the runners are in Germany, which is either an advantage or a tax on every dependency pull depending on where your services are. Blacksmith is the better purchase the moment your pipeline stops being purely Linux, because Windows and macOS on the same invoice is worth more than a rate difference on a bill that Apple silicon already dominates, and because its sticky disks let you buy your way out of a cache problem that Ubicloud answers with eviction. Neither one repairs the job that failed for a reason unrelated to your code, which on a cheap runner is a larger share of what you pay than it was on an expensive one.

Frequently asked questions

How much do Ubicloud GitHub Actions runners cost?
Standard x64 runners are $0.00125 a minute at 2 vCPU with 8 GB, doubling with each size step to $0.01875 at 30 vCPU. Premium x64 runners, on AMD Ryzen 9 7950X3D, are $0.002 at 2 vCPU and 60% more at every size. arm64 is $0.00125 at 2 vCPU with 6 GB. Every account gets a $2.50 monthly credit, which Ubicloud describes as 1,250 minutes of 2 vCPU runner time.
Why is my Ubicloud bill higher than the published standard rate?
Because new accounts are placed on premium runners by default. Ubicloud documents that all new users get premium, which is $0.002 a minute at 2 vCPU against $0.00125 on standard, and that you disable it in account settings. If you modelled a month from the standard column and the invoice is 60% higher, that is the first thing to check.
Does Ubicloud offer Windows or macOS runners?
Not in its published label list, which covers Linux x64 and arm64 on Ubuntu 22.04, 24.04 and 26.04 only. Blacksmith sells Windows Server 2025 from 2 to 32 vCPU and macOS M4 at 6 and 12 vCPU. A pipeline that needs either one stays on GitHub-hosted for that part or buys it from a vendor that sells it.
How much free cache storage do these runners include?
Ubicloud gives 30 GB per repository per week on its transparent cache and deletes the oldest entries once you exceed it, though its premium runner card advertises 100 GB without giving a unit, so confirm the figure for your own account. Blacksmith gives 25 GB per repository per week on its colocated cache and sells sticky disks at $0.50 per GB per month for anything larger. Both remove entries unused for 7 days, matching GitHub, and both intercept actions/cache with no workflow change.

Related guides

References

Ubicloud publishes a lower rate at every Linux size. Latchkey repairs the transient failures both of them bill you twice for. Start free → 30-day trial · No credit card