Is GitHub Actions free? What it actually costs in 2026
GitHub Actions is genuinely unlimited and free on public repositories. On private ones you get 2,000 minutes a month, and minutes are not what they seem.
Public repositories get free Actions with no minute cap. Private repositories on the Free plan get 2,000 minutes and 500 MB of Packages storage per month.
What the free tier actually includes
- 2,000 Actions minutes per month on private repositories
- 500 MB Packages storage
- Unlimited and free on public repositories, on every plan
- macOS runners consume minutes at 10x and Windows at 2x the Linux rate
Where the wall is
The multiplier, not the number. Two thousand minutes reads like plenty until you run anything on macOS, where each wall-clock minute is billed as ten — so a private iOS pipeline burns the entire monthly allowance in 200 minutes of real time. Teams routinely discover this in the second week of a mobile project, not the first.
After that: Team is $4 per user per month for the first 12 months and raises the allowance to 3,000 minutes; Enterprise is $21 per user per month with 50,000 minutes. Additional minutes are billed beyond the allowance, which makes the bill a function of build frequency rather than headcount.
Can you self-host GitHub Actions? Yes
Self-hosted runners are free, supported by GitHub, and remove the minute accounting entirely — you pay for the machine instead. Beyond that the honest alternatives are Forgejo Actions and Gitea Actions, which use the same workflow syntax, and Woodpecker or Drone for teams who want to leave the ecosystem rather than the billing.
What it actually takes to run one yourself
Real RAM against the documented minimum, monthly cost, setup time, and the one thing that catches people out.
Self-hosting Woodpecker CI
Self-hosting Jenkins
When paying is still the right call
Stay if you are inside the free tier, which covers a very large number of small teams and every open-source project — public repositories run on standard runners at no charge, and no alternative beats free-and-already-configured. Stay if your pipeline depends on the marketplace ecosystem, on GitHub-native features like required status checks and environments, or on OIDC federation into a cloud account. And stay if nobody on the team wants to own a build machine: a self-hosted runner is free in minutes and not free in attention.
What you are locked into
Moderate and mostly cultural rather than technical. Workflow YAML is GitHub-specific, and the marketplace actions a pipeline leans on — checkout, cache, setup-node — have no direct equivalent elsewhere, so a migration is a rewrite of the workflow files rather than a copy. What does move cleanly is the actual work: if your CI is mostly `make test` or a Docker build, that runs anywhere. The deeper hook is that Actions is wired to GitHub's own events, permissions and secrets, so leaving Actions usually means keeping GitHub and bolting a second system to it.
If you would rather not pay: Woodpecker CI
Woodpecker CI
A small, container-native CI server you can run on one box.
Free and open source. You pay only for the machine it runs on.
See all 4 GitHub Actions alternatives comparedCompare the free options head-to-head
Read from GitHub (Microsoft)'s own pricing and documentation on 2026-08-28 — 16 days ago. Vendors change prices without notice; confirm before you commit.