How much does a GitHub Actions macOS runner cost?
Short answer
On a private repo, GitHub's standard macOS runner costs $0.062 a minute, about 10 times the $0.006 Linux price. On a public repo using standard hosted runners it costs $0. Our 322 iOS build runs took about 2,573 minutes, roughly $160 at private prices. We paid nothing because the app repos are public.

Part of the article Build an iOS app on Windows: how 21 apps shipped with no Mac. This page answers one question from it in depth.
On this page · 7 sections
Apple sells you the idea that iOS development needs a Mac on your desk. It does not. It needs a Mac for a few minutes per release, and GitHub rents those minutes by the minute, or gives them away if your code is public. That is the whole business case for building an iOS app on Windows.
Key numbers
| What | Number | Source (checked Oct 26 2026) |
|---|---|---|
| macOS 3/4-core runner | $0.062 / min | GitHub runner pricing |
| macOS 12-core runner | $0.077 / min | GitHub runner pricing |
| macOS M2 Pro 5-core (arm64) | $0.102 / min | GitHub runner pricing |
| Linux 2-core runner | $0.006 / min | GitHub runner pricing |
| Public repo, standard runners | Free | GitHub Actions billing |
| Included minutes, Free / Pro / Team | 2,000 / 3,000 / 3,000 a month | GitHub Actions billing |
| Our macOS minutes, 322 runs | ~2,573 (about $160 private) | Our build log write-up |
| One Chain 1.2 release build | 4 min 22 s (about 27 cents private) | Our build log write-up |
Where the money goes
Our real minutes, priced at each rate. Chart by Tensorust from GitHub's price list.
GitHub bills hosted runners per minute of job time. The macOS premium is not a markup on code, it is a markup on Apple hardware: Apple's license only lets macOS run on Apple machines, so GitHub has to rack Macs. Every iOS build has to touch one at some point, because xcodebuild and code signing only run on macOS.
The trick is to make that point small. In our pipeline, Windows and Linux do everything else, and the macOS job only generates the Xcode project, signs, builds and uploads. A typical release build ran a little over 4 minutes.
What a month costs
Build length matters more than build count. Chart by Tensorust.
- 20 releases a month at 5 minutes: about $6.
- 100 builds at 12 minutes (every push builds): about $74.
- 300 builds at 25 minutes (a team, full test suite on macOS): about $465.
That last line is where people buy a Mac mini and run a self-hosted runner, which GitHub's billing page also lists as free.
Common misconceptions
"You need a Mac to ship an iOS app."
The recordYou need macOS for minutes, not a Mac on a desk. We shipped every app from Windows with hosted runners; signing is the hard part, and our PKCS12 fix guide covers the error that eats the most runs.
"Free minutes cover macOS the same as Linux."
The recordmacOS is priced at about 10x Linux per minute, so included minutes go much less far. Read your billing page before counting on them.
"Public repos leak your app."
The recordYour API keys and signing certificates live in encrypted GitHub secrets, not in the code. Ours were set up with an App Store Connect API key kept only in secrets.
Related
- How we build and ship iOS apps from Windows
- How to create an App Store Connect API key and use it in CI
- App stuck in Waiting for Review: how long is normal
- iPhone app cost calculator
FAQ
How much does a GitHub Actions macOS runner cost?
The standard macOS runner (3 or 4 cores) costs $0.062 per minute on a private repo, per GitHub's runner pricing page checked Oct 26 2026. The 12-core runner is $0.077 and the M2 Pro 5-core runner is $0.102.
Are GitHub Actions macOS runners free?
Yes on public repositories that use standard GitHub-hosted runners: GitHub says that usage is free. Larger runners are not free even on public repos.
Is macOS more expensive than Linux on GitHub Actions?
About 10 times more per minute: $0.062 for macOS 3/4-core against $0.006 for Linux 2-core.
How many free GitHub Actions minutes do I get on a private repo?
GitHub Free includes 2,000 minutes a month and Pro and Team include 3,000. macOS is priced far above Linux, so check how your billing page counts macOS against them before you plan around them.
How do I cut my macOS CI bill?
Make the repo public if you can, run lint and tests on Linux and only the Xcode build on macOS, cache dependencies, cancel superseded runs with a concurrency group, and only build on tags or a manual trigger.
Sources
All checked October 26, 2026.
- GitHub Docs, Actions runner pricing: $0.006 Linux 2-core, $0.010 Windows 2-core, $0.062 macOS 3/4-core, $0.077 macOS 12-core, $0.102 macOS M2 Pro 5-core; larger runners not free on public repos.
- GitHub Docs, GitHub Actions billing: free for public repos on standard runners and for self-hosted runners; 2,000 / 3,000 / 3,000 included minutes on Free / Pro / Team.
- Tensorust, How we build iOS apps on Windows: 322 macOS runs, about 2,573 minutes, Chain 1.2 build 4 min 22 s.
Next question
Every number on this page links to its source and was checked on Oct 26, 2026. Spot an error or a newer figure? Email matt@tensorust.com and it gets fixed. Related: iPhone app cost calculator.
Read next
- Article · Oct 16, 2026Build an iOS app on Windows: how 21 apps shipped with no Mac
- Article · Oct 18, 2026App Store review time: 64 real decisions, median 73 hours
- Explainer · Oct 25, 2026Lamport clock vs vector clock: what each one can actually prove
- Explainer · Oct 25, 2026What is IDOR? The bug that lets anyone read your users' data by changing one number
Get the next one by email.
What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.
No spam, never sold. Every email has a one-click unsubscribe.
