RunsOn vs GitHub-Hosted Runners: A Licence, Not a Rate
RunsOn has no per-minute price. It is a flat annual licence per legal entity and the compute is your own AWS bill, which makes it either the cheapest or the most expensive option on this site depending entirely on volume.
Every other provider in this category meters you. RunsOn does not: you pay an annual licence starting from EUR 300/year for under 50,000 runners per month, rising to EUR 3,600/year at 500,000+, and the runners execute in your own AWS account. As their pricing page puts it, this is your AWS bill, not theirs.
That inverts the usual comparison. Instead of comparing $0.004 against $0.006, you are comparing a fixed annual cost plus EC2 at your own rates against a metered rate. The crossover point is entirely a function of how many minutes you run.
Standard GitHub-hosted runners are free and unlimited on public repositories, and public repos get 4 vCPU and 16 GB rather than the 2 vCPU and 8 GB private repositories receive. No paid runner beats free, so everything below assumes a private repository past its included minutes.
Two different cost shapes
| GitHub-hosted | RunsOn | |
|---|---|---|
| Pricing model | Per minute, per size | Flat annual licence, no metering |
| Entry price | $0 until included minutes are used | From EUR 300/year |
| Compute cost | Included in the rate | Your own AWS bill, at your own rates |
| Where it runs | GitHub infrastructure | Your AWS account |
| Spot instances | Not available | Available, since it is your EC2 |
| Operational burden | None | Yours: capacity, images, incidents |
| Free tier | 2,000-50,000 min by plan | Free for OSS, nonprofit, education |
Where the crossover is
A licence beats metering above a volume threshold and loses below it. The arithmetic is simple enough to do before you trial anything.
| Monthly Linux minutes | GitHub-hosted at $0.006 | RunsOn licence + rough EC2 |
|---|---|---|
| 10,000 | $60/mo | EUR 25/mo licence + EC2 (~$15) |
| 100,000 | $600/mo | EUR 25/mo licence + EC2 (~$150) |
| 1,000,000 | $6,000/mo | EUR 300/mo licence + EC2 (~$1,500) |
What you take on
- Capacity planning and scale-out behaviour become yours. A pool that does not scale during a busy afternoon is your incident.
- Runner images need maintaining, or you inherit the drift between your image and what GitHub-hosted workflows assume.
- Security boundary moves into your account: network policy, IAM, and isolation between jobs are your responsibility.
- Spot interruptions surface as mid-run failures, which is a real trade for the discount rather than a free win.
Switching, and switching back
Every managed runner in this category is selected by the runs-on label, so adoption and reversal are the same one-line edit. That makes a two-week trial on your slowest job a better decision procedure than any amount of modelling.
jobs:
build:
runs-on: ubuntu-latest # GitHub-hosted
# runs-on: latchkey-small # Latchkey
How to evaluate a managed runner honestly
Runner vendors compete on a headline per-minute rate, and the rate is rarely what decides the bill. Measure the whole job, on your own pipeline, before committing.
- Compare at equal machine shape. A cheaper per-minute rate on fewer vCPUs or less RAM is not cheaper per unit of work.
- Check billing granularity. Per-minute rounding costs real money on a wide matrix of short jobs; per-second does not.
- Include queue and boot time. A runner that is cheaper per minute but slower to start can cost more per merge.
- Count your re-runs. If a meaningful share of your runs are retries of a failed job, you are paying for the same work twice at whatever rate you negotiated, and no rate card prices that.
- Verify the free tier is recurring. A one-time credit is not a free tier.
The verdict
Low volume: RunsOn is the most expensive option here. A EUR 300/year floor against a $0 GitHub bill inside included minutes is not a close call.
High volume with AWS expertise in-house: RunsOn is very likely the cheapest option available, and the gap widens with scale. At a million minutes a month the licence is a rounding error against the metered alternative.
Regulated or network-isolated environments: RunsOn is one of the few options that runs entirely inside your account.
The honest deciding question is not price, it is whether you want to own runner operations. If nobody on the team wants that pager, a metered provider is cheaper than it looks.