Skip to content
Latchkey LogoLatchkey home

Ubicloud GitHub Actions runners, and where 4 to 7x lands

Ubicloud GitHub Actions runners advertise a saving of 4 to 7x against GitHub-hosted, and the two ends of that range are claims about different things. Dividing its two published rate cards gives 4.8x at the small x64 sizes and 4.0x on arm64, which is the 4 end and checks out; the 7 end is a price-performance figure that folds in a separate claim that your jobs run twice as fast.

Bars per size on three ladders, all landing inside the 4 to 7x band Ubicloud advertises
Ubicloud's own card divided into the GitHub rate beside it, read 21 September 2026, against its published 4 to 7x range. Standard x64 runs 4.8x to 4.1x, premium a flat 3.0x at the small sizes, arm64 4.0x down to 2.5x.

GitHub-hosted runners are the baseline. On a private repository a standard Linux x64 runner is 2 vCPU with 8 GB at $0.006 a minute, Linux arm64 is $0.005, Windows is $0.010 and macOS is $0.062, with included minutes by plan, 10 GB of cache per repository and artifact storage pooled with GitHub Packages. On a public repository standard runners are free and unlimited, which ends most comparisons before they start.

Ubicloud sells VMs from an open-source cloud it runs on bare metal, and GitHub Actions runners are one product on it. Runner VMs sit in data centres in Germany, x64 standard machines are AMD EPYC 9454P, premium machines are AMD Ryzen 9 7950X3D, and arm64 machines are Ampere Altra Q80-30 with a dedicated core per vCPU, built from the packer templates GitHub publishes in actions/runner-images.

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, GitHub-hosted and Latchkey side by side (read 21 September 2026)

UbicloudGitHub-hostedLatchkey
Price per minute, 2 vCPU Linux x64$0.00125 standard or $0.002 premium (2 vCPU, 8 GB RAM, 75 GB disk). Premium is on by default for new accounts$0.006 on a private repository, free on a public one$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.012 for the 4-core larger runner$0.005 (4 vCPU, 16 GB RAM, 100 GB disk)
Free tierA $2.50 monthly account credit, which its docs put at 1,250 minutes of 2 vCPU runner time. A valid card is required before any resource is created2,000 minutes a month on Free and 3,000 on Pro and Team, 50,000 on Enterprise Cloud, plus unlimited free standard runners on public repositories30-day trial, then 2,000 included minutes a month on Developer, 4,000 on Launch, 6,000 on Scale
Billing granularityPer minute, calculated at per-minute granularity and billed monthlyPer minute, rounded up per job, charged to the repository ownerPer 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 publishedStandard 2-core Linux and Windows, 3 or 4-core macOS, and larger runners to 96 vCPU on paid plans2, 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; oldest entries deleted past the limit, entries unused for 7 days removed. Branch isolation matches GitHub and can be switched off10 GB per repository included, configurable higher at $0.07/GB/month; entries unused for 7 days removed, oldest evicted first once the limit is hitSize 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 swaptype=gha, which writes layers into the same 10 GB per-repository store actions/cache useslatchkey-dev/docker-cache-action@v1, layers held in a Latchkey-managed private registry per organization
Concurrency limitsNot publishedBy plan: a documented cap on concurrent jobs per account, separate for macOSNot published; warm-pool capacity varies by plan
Where jobs runUbicloud VMs across data centres in Germany. Its public IPv4 ranges are published for firewall allowlistsMicrosoft Azure, in GitHub's own subscriptionLatchkey'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-2None. runs-on: ubuntu-latest is the defaultA runs-on label change. GitHub organization accounts only

Where the 4 to 7x range comes from

Ubicloud publishes a range rather than a single number, and it is worth separating which of its claims is a price and which is not. Its GitHub Actions page says "Save 4-7x" under the heading and "Reduce your GitHub Actions bill by 4-7x" over its rate table, while its page title and the badge on each runner card say something narrower: "7x Price-Performance" and "7x better price-performance".

Only one of those is arithmetic, and it holds. Read it per ladder, because a single blended range hides which machine you are buying. Standard x64 divides out at 4.8x at 2 and 4 vCPU, 4.4x at 8, 4.2x at 16 and 4.1x at the largest size. Premium x64 is a flat 3.0x at the two smallest sizes, which is what Ubicloud's own documentation means by runners "priced at just 1/3th the cost of GitHub-hosted runners". arm64 is a separate and weaker ladder: 4.0x at 2 vCPU, falling to 2.5x at 30. A competitor checks the same two rows and gets the same answer, since RunsOn's runner benchmark prices the standard 2 vCPU runner at 4.8x cheaper than GitHub and the premium one at 3.0x.

So a measured 4.8x sits at the bottom of Ubicloud's own published range rather than contradicting anything, and two things account for the rest of it. The 7 is a price-performance figure, not a rate: the same page says "Go twice as fast" and "Double the performance", and price-performance multiplies the two halves together. And the badges carrying it sit beside runner cards still quoting $0.0010 and $0.0016 a minute, the rates before Ubicloud raised both tiers by 25% effective 1 September 2026; at the old standard rate the 2 vCPU multiple was 6.0x. Until your own jobs actually get faster, the multiple on your invoice is the current rate multiple alone.

ShapeUbicloud standardUbicloud premiumGitHub-hostedStandard, then premium
2 vCPU, 8 GB x64$0.00125$0.002$0.0064.8x, then 3.0x
4 vCPU, 16 GB x64$0.0025$0.004$0.0124.8x, then 3.0x
8 vCPU, 32 GB x64$0.005$0.008$0.0224.4x, then 2.75x
16 vCPU, 64 GB x64$0.010$0.016$0.0424.2x, then 2.63x
30 vCPU, 120 GB x64$0.01875$0.030$0.077 at 32 vCPU4.1x, then 2.57x
2 vCPU, 6 GB arm64$0.00125Not offered on arm64$0.0054.0x
30 vCPU, 90 GB arm64$0.01875Not offered on arm64$0.046872.5x

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.

This is the half of the headline that carries the 7. Ubicloud publishes sample run times for five named open-source repositories, including folly, xls, peerdb, supabase and astrobee, dated 7 January 2025, and attributes the difference to newer hardware than the Azure VMs GitHub uses. Naming the repositories and the date is more than most vendor claims manage, and it is still five projects that are not yours, measured some time ago.

The hardware description is easier to act on. Two x64 vCPU map to one physical core on the standard tier, as they do on GitHub, so a standard Ubicloud runner is not secretly smaller; each arm64 vCPU gets a dedicated physical core, which is why those machines pair 6 GB with 2 vCPU instead of 8.

Cost: the same month, and the part that does not move

The workload every comparison here uses: 10,000 Linux minutes at 2 vCPU plus 2,000 macOS minutes, private repository. Ubicloud sells no macOS runner, so that half of the bill stays where it was.

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
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

The Linux line moves by a factor of six and the bill by 27%, because macOS is two thirds of this month and the saving lands on the other third. On a pipeline with no macOS it inverts: $10 against $60, an 83% cut, and the rate card is then the whole story. 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.

Artifacts do not move with the runner: they go to GitHub wherever the job ran, at $0.25 per GB per month above a plan allowance shared with GitHub Packages. Cache does move, and moves well: 30 GB per repository per week against GitHub's 10 GB per repository, though GitHub Actions cache size limit is worth reading first, because a cache thrashing at 10 GB usually has a key problem rather than a size one.

None of this applies to a public repository, where standard GitHub-hosted runners cost nothing and have no minute limit. The only reasons to move an open-source project are speed, arm64 pricing or machine size, never the bill.

Reliability

Neither publishes an Actions SLA on the pages read here, so the comparison is what each tells you about its image and its capacity. GitHub publishes the runner images, a status page and concurrency caps by plan. Ubicloud publishes no concurrency number at all, the largest gap in its documentation for anyone planning a wide matrix.

What it does publish is its image policy, a deliberate trade. It builds x64 images from GitHub's own packer templates in actions/runner-images and updates monthly, but deploys a few days after GitHub, because GitHub has shipped images it then had to roll back. So for a few days each month the image is behind ubuntu-latest, and a workflow expecting a just-added preinstalled tool fails on Ubicloud and passes on GitHub. What is installed on ubuntu-latest explains why it moves.

And the failure neither side handles is the ordinary mechanical one: a registry timeout, a browser binary that did not install, an out-of-memory kill. The run bills, the re-run bills, the merge waits for a person, and that cost does not shrink when the minute gets cheaper.

When to choose Ubicloud

  • Your repositories are private, your pipeline is Linux, and minutes are a line you can see on an invoice. This is the cheapest published rate in the category by a clear margin at every size.
  • You build arm64 at a small size. A dedicated physical core per vCPU at $0.00125 against the GitHub-hosted arm64 rate of $0.005 is 4.0x at 2 vCPU, though the arm64 saving narrows as the machine grows and is 2.5x at 30 vCPU, well under the x64 ladder.
  • Your services are in Europe, so German data centres shorten your dependency pulls instead of lengthening them.
  • You want the option to leave. The platform is AGPL v3, so running it yourself is a documented path rather than a theoretical one.
  • Your cache is between 10 and 30 GB, where GitHub starts evicting and Ubicloud does not.

When to stay on GitHub-hosted

  • Your repositories are public. Standard runners are free and unlimited, and no paid rate card competes with zero.
  • Your pipeline needs Windows or macOS. Ubicloud publishes no labels for either, so those jobs stay on GitHub and the comparison only covers part of your bill.
  • You are inside your included minutes. Two thousand a month on Free and three thousand on Pro and Team is an allowance you are not being charged for, and Ubicloud requires a card before the first runner exists.
  • You need a published concurrency number to plan a wide matrix. GitHub documents its caps by plan; Ubicloud publishes none.
  • Your workflow depends on the newest preinstalled tooling the day it lands, which is exactly the window Ubicloud deliberately waits out.

Switching: the exact diff

One label, after a GitHub App install and a card. Nothing else in the workflow changes, because the transparent cache backs actions/cache without an action swap and the images are built from the same templates. Keep a GitHub-hosted job beside the new one for a fortnight so you are comparing the same commits rather than the same week.

.github/workflows/ci.yml
 jobs:
   test:
-    runs-on: ubuntu-latest
+    runs-on: ubicloud-standard-4
     steps:
       - uses: actions/checkout@v7
       - uses: actions/setup-node@v6
         with:
           node-version: 22
           cache: npm
       - run: npm ci && npm test

   test-control:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v7
       - uses: actions/setup-node@v6
         with:
           node-version: 22
           cache: npm
       - run: npm ci && npm test

The verdict

On a private repository with a Linux pipeline, Ubicloud is the cheapest published runner in this corpus, and its price claims hold up when you check them, which is not something every rate card in this category manages. Dividing its own two columns gives 4.8x at 2 and 4 vCPU on the standard tier, 4.2x at 16, and a flat 3.0x on the premium tier a new account is placed on, matching the wording in its own documentation. That is the 4 in its published 4 to 7x range. The 7 is a price-performance figure carrying a separate claim that your jobs run twice as fast, so it is the half to test rather than the half to quote, and on arm64 the rate saving alone falls to 2.5x at the largest size. Where it stops is clear enough to check in a minute: no Windows, no macOS, no published concurrency number, German data centres, and a runner image that deliberately lands a few days after GitHub's. For a public repository GitHub-hosted is free and none of this applies. Neither side repairs a job that failed for a reason unrelated to your code, and the cheaper the minute gets, the larger a share of your bill that re-run becomes.

Frequently asked questions

Are Ubicloud runners really 4 to 7x cheaper than GitHub Actions?
The price half checks out and lands at the bottom of that range. Standard x64 divides out at 4.8x at 2 and 4 vCPU, 4.4x at 8 and 4.2x at 16; premium is a flat 3.0x at the small sizes; arm64 runs from 4.0x at 2 vCPU down to 2.5x at 30. RunsOn's benchmark computes the same 4.8x and 3.0x independently. The 7x figure is published as "7x Price-Performance", so it folds in a separate claim that jobs run twice as fast, and the cards carrying it still show the rates from before a 25% rise on 1 September 2026.
How do I switch a workflow to Ubicloud runners?
Install the Ubicloud Managed Runners GitHub App, add a payment method, then change runs-on: ubuntu-latest to ubicloud-standard-2 or a larger size. Nothing else changes: the transparent cache backs actions/cache and the setup-* actions without an edit.
Does Ubicloud include free GitHub Actions minutes?
Not as a minute allowance. Every account gets a $2.50 monthly billing credit, which Ubicloud describes as 1,250 minutes of 2 vCPU runner time, and a valid card is required before you can create any resource. That is a different arrangement from GitHub's included minutes, which reset with your plan.
What does the Ubicloud cache give you over the GitHub one?
Thirty gigabytes per repository per week instead of ten per repository, on by default, with no action to swap. Confirm the figure for your own account first: the documentation says 30 GB per repository per week, while the runner cards on its GitHub Actions page advertise 30 GB on standard and 100 GB on premium with no unit given. Both vendors remove entries unused for 7 days and isolate by branch by default. Past the allowance GitHub sells you more at $0.07 per GB per month; Ubicloud deletes your oldest entries.

Related guides

References

Ubicloud publishes a lower rate than we do. Latchkey includes plan minutes and repairs transient failures on the runner. Start free → 30-day trial · No credit card