The Bill That Started This
In January 2026, GitHub quietly updated their Actions pricing.
Ubuntu went from $0.008/min to $0.006/min — a 25% reduction.
macOS went from $0.080/min to $0.048/min — a 40% drop.
Good news, right? Cheaper CI/CD.
Except most teams had no idea this happened.
And many teams are still paying for macOS runners
when Ubuntu would do the same job for 8x less.
The 2026 GitHub Actions Pricing (Official Numbers)
| Runner | Old Price | New Price (Jan 2026) | Change |
|---|---|---|---|
| Ubuntu (Linux) | $0.008/min | $0.006/min | -25% |
| Windows | $0.016/min | $0.010/min | -37.5% |
| macOS | $0.080/min | $0.048/min | -40% |
These are the overage rates after free tier.
Free tier: 2,000 min (Free), 3,000 min (Pro),
50,000 min (Team).
The macOS Problem Nobody Talks About
macOS runners cost 8x more than Ubuntu runners
on the new pricing. Before the update, it was 10x.
Still 8x.
Here's what that means in practice:
# This job on macOS: $0.048/min × 10 min = $0.48 per run
# This job on Ubuntu: $0.006/min × 10 min = $0.06 per run
jobs:
test:
runs-on: macos-latest # ← costs 8x more than ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm test
If you push 20 times per day, that's:
- macOS: $9.60/day → $288/month
- Ubuntu: $1.20/day → $36/month
For the same test results.
The Windows Trap
Windows runners are 1.67x more expensive than Ubuntu:
- Ubuntu: $0.006/min
- Windows: $0.010/min
Many teams run cross-platform tests on Windows "just in case"
without checking if their Linux tests already cover it.
Self-Hosted Runner Change (March 2026 Controversy)
GitHub announced charges for self-hosted runners
(ephemeral, network access) — $0.002/min starting March 2026.
This is still significantly cheaper than hosted runners
but it caught many teams off guard who assumed
self-hosted = always free.
Free Minutes — Do You Know Your Limit?
Before any overage kicks in, you get:
| Plan | Free Minutes/Month |
|---|---|
| Free | 2,000 |
| Pro | 3,000 |
| Team | 50,000 |
| Enterprise | 50,000 |
With OS multipliers applied:
- 2,000 Linux minutes on Free plan
- But only 200 macOS minutes (10x multiplier)
- Or 666 Windows minutes (3x multiplier)
How to Calculate Your Actual Cost
I built a free calculator that does this instantly:
🔗 GitHub Actions Cost Calculator
Paste your workflow YAML → instant cost breakdown across
all 3 runner types → AI suggestions to reduce costs.
No signup. No account. Runs in browser. Nothing stored.
5 Ways to Reduce Your GitHub Actions Bill
1. Switch lint/type-check jobs to Ubuntu
# Before — expensive
lint:
runs-on: macos-latest
# After — 8x cheaper, identical output
lint:
runs-on: ubuntu-latest
2. Use path filters — skip CI on docs changes
on:
push:
paths:
- 'src/**'
- '!docs/**'
- '!*.md'
3. Cache dependencies aggressively
- uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
4. Run jobs in parallel instead of serial
strategy:
matrix:
test-suite: [unit, integration, e2e]
# All 3 run simultaneously — same total time,
# same total cost, but faster wall-clock
5. Only run macOS when you truly need it
test:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
# Ask: does your macOS test find bugs Ubuntu misses?
# If not, remove macos-latest from the matrix
The Bigger Picture — 11 More Billing Surprises
GitHub Actions is just one piece.
After I built that calculator, I realized the same problem
existed across the whole developer tooling ecosystem:
Docker Hub now throttles unauthenticated pulls to
10/hour (down from 100/6hr) — shared CI runner IPs
mean your builds fail because of other usersFirebase bills per Firestore document read —
one bad list query can cost $179/monthNetlify's new credit system makes bandwidth overage
cost $0.55/GB vs Vercel's $0.15/GB — 3.7x difference
I built free calculators for all of these:
→ DevCost Tools — All 12 Calculators
CI/CD, AWS Lambda, CodeBuild, Vercel vs Netlify,
Supabase vs Firebase, Docker Hub, CircleCI, GitLab CI,
AI API rate limits, full tech stack estimator.
All free. All 2026 pricing. All browser-side calculations.
Quick Reference — 2026 Pricing Cheat Sheet
GitHub Actions
Ubuntu: $0.006/min (1x multiplier)
Windows: $0.010/min (1.67x multiplier)
macOS: $0.048/min (8x multiplier)
GitLab CI
All OS: $0.010/min flat (no multiplier!)
macOS: 6x compute minutes consumed
CircleCI
Linux: $0.006/min (10 credits/min)
macOS: $0.060/min (100 credits/min)
1 credit = $0.0006
AWS Lambda
x86: $0.0000166667/GB-s
ARM: $0.0000133334/GB-s (20% cheaper)
Free: 1M requests + 400K GB-s/month
Docker Hub
Unauth: 10 pulls/hour per IP
Free: 100 pulls/hour per user
Paid: Unlimited
Which of these billing surprises caught you off guard?
Let me know in the comments 👇
And if this saved you from a surprise bill —
share it with one teammate who runs macOS builds.
Top comments (0)