Last verified June 2026 · 8 min read
GitHub Actions pricing 2026: the complete cost model
TL;DR · RATES SINCE 1 JANUARY 2026
IS GITHUB ACTIONS FREE? THE FREE TIER IN FULL
Yes, for public repositories: GitHub Actions on standard GitHub-hosted runners is completely free and unmetered for public repos, with no minute cap. For private repositories you get a monthly allowance of included minutes and storage that varies by plan, then pay per minute for anything beyond it.
| Plan | Free minutes/mo (private repos) | Free storage |
|---|---|---|
| Free | 2,000 | 500 MB |
| Pro | 3,000 | 1 GB |
| Team | 3,000 | 2 GB |
| Enterprise | 50,000 | 50 GB |
Two catches that surprise teams. First, free minutes are Linux-equivalent and drain at the OS multiplier, so a macOS build burns 10x its wall-clock minutes against your allowance (see the included-minute trap below). Second, once a private repo exceeds its included minutes, overage bills at the standard per-minute rates, or GitHub blocks further runs if you have no payment method on file. Every plan also includes 10 GB of Actions cache storage per repository, separate from the artifact storage above.
Per-plan included minutes
| Plan | Price | Included min/mo | Storage | Notes |
|---|---|---|---|---|
| Free | $0 | 2,000 | 500 MB | Public repos: unlimited minutes |
| Pro | $4/user/mo | 3,000 | 1 GB | Individual developers |
| Team | $4/user/mo | 3,000 | 2 GB | Organisations, SAML, advanced permissions |
| Enterprise | $21/user/mo | 50,000 | 50 GB | Compliance features, audit log, SAML, IP allowlist |
Additional minutes beyond the included allocation are billed at the per-minute rates above. Storage overages are billed at $0.25/GB/month. Large runners (8-core, 16-core, 64-core) have separate, higher per-minute rates not listed above.
The self-hosted platform fee that never landed
In December 2025 GitHub announced a $0.002 per minute platform fee on self-hosted runner minutes, scheduled to start 1 March 2026, to charge for the Actions control plane (orchestration and scheduling) on top of your own infrastructure cost. After heavy community backlash it postponed the change indefinitely before it took effect. As of June 2026 there is no self-hosted platform fee. Self-hosted runner minutes remain free; you pay only for the EC2 or Kubernetes compute you run them on.
What did happen on 1 January 2026 was a price cut on GitHub-hosted runners of up to 39%: Linux x86 dropped from $0.008 to $0.006/min, Windows from $0.016 to $0.010, and macOS from $0.080 to $0.062. GitHub folded the orchestration charge into those hosted rates, so there is no separate fee line on a hosted bill. The net effect was the opposite of the original proposal: hosted runners got cheaper and self-hosting stayed free.
The break-even maths therefore still turns on engineer time, not a GitHub fee. For a team consuming 25,000 self-hosted minutes per month, the dominant cost is maintenance, not infrastructure. External managed runners like Depot ($0.004/min Linux) still undercut both self-hosting and GitHub-hosted on raw rate, but the cheaper January hosted prices narrowed that gap.
25,000 min/mo self-hosted on c6i.xlarge spot (June 2026)
The honest conclusion is unchanged: for most teams under 100,000 minutes per month, the self-hosted path costs more than a managed external runner once you account for engineer time, even without a platform fee. See self-hosted runners for the full break-even analysis.
OS multiplier deep dive
Two numbers govern each OS: the per-minute dollar rate (what overage costs) and the included-minute multiplier (how fast a job drains your monthly allowance). They used to match, but the January 2026 repricing decoupled them. The base is Linux x86 at $0.006/min, 1x on included minutes.
LINUX ARM · $0.005/min · ~17% CHEAPER THAN X86
GitHub-hosted ARM Linux runners run on AWS Graviton and bill at $0.005/min versus $0.006/min for x86, roughly 17% cheaper. This is a real saving on a pure Linux workload but it is not the half-price cut sometimes claimed. See the full ARM runners guide.
WINDOWS · $0.010/min · 2x INCLUDED-MINUTE MULTIPLIER
Windows licensing cost is passed through. Overage bills at $0.010/min and Windows jobs drain included minutes at 2x. If you have significant Windows workloads, Azure DevOps at $0.007/min or $40/parallel job can be cheaper. This is a real migration to consider if your bill is Windows-driven.
MACOS · $0.062/min · 10x INCLUDED-MINUTE MULTIPLIER
Apple hardware leasing at cloud scale explains the premium. Overage bills at $0.062/min and a 10-minute macOS build still consumes 100 of your included minutes (10x). For iOS/macOS development, self-hosting Mac Minis (MacStadium, Scaleway, Hetzner Apple Silicon) is typically cheaper above 5,000 macOS minutes per month. External providers do not undercut GitHub here: Depot, the main one offering macOS, lists it from about $0.08/min.
The included-minute trap
The most commonly misunderstood detail in GitHub Actions billing: the included minutes for your plan are Linux-equivalent minutes, consumed at the OS multiplier rate.
EXAMPLE: GitHub Team plan, 3,000 included minutes/mo
A team running daily iOS builds on the Team plan will almost certainly exceed their included minutes every month and pay macOS overage. This is the surprise that shows up on the second billing cycle.
Optimisation checklist
~17% cost reduction, most standard workloads work without changes
npm, pnpm, yarn, maven, gradle, cargo, pip, composer recipes
Skip workflows when unrelated files change. 20-40% typical saving
Cancel superseded builds on force-push. 20-40% saving on active teams
4x Docker build time reduction in common scenarios
Depot, Blacksmith, Ubicloud: 40-70% cheaper than GitHub-hosted
DIGITAL SIGNET · PIPELINE AUDIT
GitHub Actions bill spiked? We find the culprit.
Digital Signet runs two-week pipeline cost audits. We identify the caching gaps, concurrency issues, and OS-mix opportunities that are driving your bill.
Get an Audit