CICDCost.com is an independent comparison resource. Not affiliated with GitHub, GitLab, CircleCI, Buildkite, or any CI/CD vendor. Try our CI/CD calculator

Self-Hosted CI vs Cloud CI: When Does It Save Money?

The March 2026 GitHub Actions platform fee changed the maths. Here is the updated break-even analysis. Updated April 2026.

Updated for March 2026 platform fee

GitHub now charges $0.002/min for self-hosted runners on private repos. This fee applies on top of your server cost, reducing the saving from self-hosting. Teams that self-hosted specifically to avoid GitHub compute charges should recalculate.

The Core Calculation

Cloud CI cost = minutes x per-minute rate
Self-hosted cost = server cost + (minutes x platform fee if GitHub Actions)
GitHub Actions break-even example (t3.medium at $30/mo):
Cloud: 15,000 min x $0.006 = $90/mo
Self-hosted: $30 + (15,000 x $0.002) = $60/mo
Saving: $30/mo. Break-even at ~16,000 minutes/month (after 3,000 free on Team)

Break-Even Tables by Instance Type

Self-hosted runnerMonthly server costBreak-even (vs GitHub Actions Linux)
Hetzner CX21 (2 vCPU / 4 GB)$5/mo~3,000 min
Hetzner CX31 (2 vCPU / 8 GB)$10/mo~5,500 min
AWS t3.small$15/mo~9,750 min
AWS t3.medium$30/mo~16,000 min
AWS c5.xlarge$120/mo~42,000 min

Formula: break-even minutes = (server cost / ($0.006 - $0.002)) + free tier minutes. Hetzner (EU) is dramatically cheaper than AWS for European teams with no strict data residency requirements.

Self-Hosted Break-Even Calculator

Compare hosted CI cost vs self-hosted runner cost including the 2026 platform fee.

Hosted CI cost/month
$102.00
Self-hosted total/month
$70.00
incl. $40.00 platform fee
Monthly saving
-$32.00
Break-even: 10,500 min/mo

Does not include engineering maintenance time. GitHub Actions: $0.002/min platform fee applies to private repos (March 2026). Prices as of April 2026.

GitLab CI Self-Managed: No Platform Fee

GitLab does not charge a platform fee for self-hosted runners

If you switch from GitHub Actions to GitLab CI self-managed, your total self-hosted cost = just the server. No platform fee means the break-even calculation is much more favourable.

ScenarioGitHub Actions self-hostedGitLab CE self-managed
20,000 min/mo, t3.medium ($30/mo)$30 + $40 (platform fee) = $70/mo$30/mo (server only)
50,000 min/mo, t3.large ($60/mo)$60 + $100 = $160/mo$60/mo

The macOS Exception: Always Self-Host High-Volume iOS CI

Self-hosting macOS CI requires physical Apple hardware (Mac mini at $599+, Mac Studio at $1,999+). Amortised over 3 years + electricity + colocation: roughly $40-80/month per machine.

Monthly iOS build minutesGitHub Actions hosted ($0.048/min)Self-hosted Mac mini (amortised)
500 min/mo$24/mo~$40-80/mo
1,000 min/mo$48/mo~$40-80/mo
2,000 min/mo$96/mo~$40-80/mo
5,000 min/mo$240/mo~$50-90/mo

At around 830-1,670 minutes/month per machine, self-hosted macOS breaks even. Any iOS team doing daily CI should self-host.

Arm Runners: 20-30% Additional Savings

AWS Graviton (Arm) runners cost 20-30% less than x86 equivalents for comparable performance. GitHub now offers native Arm-hosted runners. Most CI workloads (Node.js, Python, Go) run unmodified on Arm.

For self-hosted Arm: Hetzner and Ampere Cloud offer Arm instances at very low cost. An Ampere A1 Compute instance on Oracle Cloud Free Tier gives 4 Arm vCPU / 24 GB RAM - effectively free for CI.

FAQ

At what build volume does self-hosting become cheaper?
For GitHub Actions: break-even at ~16,000 minutes/month with a t3.medium ($30/mo) after accounting for the $0.002/min March 2026 platform fee. For Hetzner CX21 ($5/mo): break-even at ~3,000 minutes. For GitLab CI self-managed (no platform fee): break-even at ~5,000 minutes on a $30 server. Use our calculator above with your specific server cost.
Does the GitHub Actions platform fee apply to all self-hosted runners?
The $0.002/min platform fee (from March 2026) applies to self-hosted runners on private repositories only. Public repositories are exempt. GitHub Enterprise Server (on-premises installation) is also exempt. Organisations running both public and private repos only pay the fee for private repo builds.
Is it worth switching to GitLab to avoid the platform fee?
Potentially yes, at high build volumes. If you are doing 50,000 minutes/month of self-hosted CI on GitHub Actions, the platform fee costs $100/month = $1,200/year. Migration to GitLab CE self-managed eliminates this fee but costs engineering time to migrate pipelines (typically 2-4 weeks for a medium codebase). Break-even on migration: 12-24 months at that volume. Worth evaluating if you are also unhappy with GitHub for other reasons.