Figment.so
Mac hostingWebsite hostingGuidesHow to usePricing

GitHub-Hosted vs Self-Hosted Mac Runner Costs

If your private-repo iOS builds exceed roughly 3–4 fifteen-minute macOS jobs per day, move the workload to a Figment M-series Mac starting at $95/month and request configuration at /mac-hosting/start. Add managed CI setup, backups, monitoring and 30 minutes of monthly support with the Managed Build Mac at $249/month, or two M-series Macs with two CI runners and one hour of monthly support on Managed Mac Team at $999/month. Lower-volume teams and public repositories should stay on GitHub-hosted runners, where macOS minutes are free on public repos. The worksheet below produces the exact break-even for your own usage report.

GitHub Actions bills macOS minutes at $0.062 per minute on standard 3-core or 4-core macOS runners, per the GitHub Actions billing documentation. For a handful of builds per day that rate is fine. For a team pushing dozens of builds per day the invoice can clear four figures before anyone notices.

How GitHub Actions Charges for macOS

GitHub applies a monthly compute allowance in dollars, not in minutes. The billing docs list the allowances currently in effect:

GitHub planMonthly compute allowance
Free / Pro$12–$18
Team$18
Enterprise Cloud$300

Overages are charged on top. A Team account's $18 allowance covers about 290 macOS minutes ($18 ÷ $0.062 ≈ 290), or roughly 19 fifteen-minute builds, before the meter starts.

Linux 2-core runners are $0.006 per minute on the same page, so a macOS minute is about 10.3× a Linux minute. That gap is unavoidable for iOS teams because Apple's toolchain does not run on Linux. Public-repository builds are free regardless of OS; everything that follows is about private repositories.

Reading Your GitHub Usage Report

Pull the numbers you actually paid for before comparing anything:

  1. Open Settings → Billing and plans → Usage this month for the organization or user that owns the billing account.
  2. Filter the table to macOS runner minutes. If several repos share one account, sum the macOS rows.
  3. Download the CSV and compute the median build duration from the per-workflow rows. That median is your avg_minutes input below.

The Break-Even Worksheet

The table uses a 15-minute average build (realistic for a mid-sized iOS project) and a single Figment runner processing jobs sequentially. GitHub figures are gross; subtract your plan's allowance for a net monthly cost.

Builds/dayMinutes/month (30 d)GitHub gross $/moFigment M-series ($95)Figment Managed Build ($249)
1450$27.90$95.00$249.00
31,350$83.70$95.00$249.00
~3.4~1,532~$95.00$95.00 ← break-even$249.00
52,250$139.50$95.00$249.00
~8.9~4,016~$249.00$95.00$249.00 ← break-even
104,500$279.00$95.00$249.00
209,000$558.00$95.00$249.00
5022,500$1,395.00$95.00$249.00
8036,000$2,232.00$190 (two runners)$999 (Managed Mac Team)

Break-even arithmetic: $95 ÷ $0.062 = 1,532 minutes → ÷15 = 102.1 builds → ÷30 ≈ 3.4 builds/day. The $249 plan crosses at $249 ÷ $0.062 ÷ 15 ÷ 30 ≈ 8.9 builds/day. At 80 builds/day one runner would hold 83% utilization (1,200 minutes of an available 1,440); two M-series runners give realistic headroom and parallel merges.

A note on hardware class. GitHub's $0.062/min covers a shared macOS runner (3-core or 4-core, M1 or Intel, per their docs). Figment's $95 is the entry price into the M-series line; the exact chip, RAM and disk are confirmed in the quote. This is an entry-price comparison, not an equal-hardware comparison.

Import the Worksheet

Save as runner-break-even.csv and open in any spreadsheet. Replace avg_minutes with your own median and recompute the two cost columns.

builds_per_day,avg_minutes,github_min_month,github_cost_month,figment_m_series,figment_managed_build
1,15,450,27.90,95.00,249.00
3,15,1350,83.70,95.00,249.00
5,15,2250,139.50,95.00,249.00
10,15,4500,279.00,95.00,249.00
20,15,9000,558.00,95.00,249.00
50,15,22500,1395.00,95.00,249.00
80,15,36000,2232.00,190.00,999.00

Recompute formulas: github_min_month = builds_per_day * avg_minutes * 30, then github_cost_month = github_min_month * 0.062. Subtract your plan's allowance to get the net figure.

Worked Example: 80 Builds/Day, 15-Minute Average

A mobile platform team pushes feature branches throughout the day and triggers builds on push and merge. Last month's GitHub usage report shows 36,000 macOS minutes.

  • GitHub gross: 36,000 × $0.062 = $2,232.00
  • Less Team allowance: −$18.00
  • Net GitHub cost: $2,214.00/month

Two Figment M-series runners at the $95 entry price are $190/month, about 11.7× less than the net GitHub bill (2,214 ÷ 190 = 11.65). The Managed Mac Team plan at $999/month — two M-series Macs, two CI runners, team setup, backups, monitoring and one hour of monthly support — still saves $1,215/month versus the same GitHub invoice and absorbs the CI configuration work.

If the constraint is a specific chip tier such as M4/16GB, a managed M4 Mac is also published by other providers. CloudMac lists an M4/16GB/256GB at $99.99/month, and the CloudMac homepage publishes a $999/year rate on that same hardware — $83.25 effective monthly, roughly $141 less per year than twelve months at Figment's $95 entry. Figment's $95 is an unspecified M-series entry and may not be M4-class; confirm in the quote. MacStadium's pricing page publishes an M2.S at $109/month (8GB/256GB), M4.S at $149/month (16GB/256GB) and M4.M at $249/month (24GB/512GB) with support and a 99.99% uptime claim. Figment's distinct contribution at $249 and $999 is the managed CI work — runner registration, Xcode installs, keychain setup, backups and monitoring — not simply the Mac itself.

What the Flat-Rate Plan Includes That Per-Minute Billing Doesn't

CapabilityGitHub-hosted macOSFigment M-series ($95)Figment Managed Build ($249)
Billing modelPer minuteFixed monthlyFixed monthly
Persistent disk between jobsNo (fresh image)YesYes
Preinstalled toolchainsGitHub imageInstall once, persistsInstalled as part of setup
Xcode version switchingAdd step per jobInstall onceConfigured for you
CI runner registrationGitHub-managedYou run the setupIncluded
Backups and monitoringn/aNot includedIncluded
Monthly support timeStandard GitHub supportNot included at this tier30 minutes

Persistent disk is the quiet win for iOS CI. DerivedData, Homebrew, CocoaPods and Swift Package Manager caches survive between jobs, which typically removes several minutes from every incremental build — minutes you were otherwise paying $0.062 for.

When GitHub-Hosted Is Still the Right Call

  • Private-repo volume below the ~3.4 builds/day M-series break-even.
  • Public repositories, where macOS minutes are free.
  • Short-lived experiments or spiky volume where elasticity matters more than price.
  • A compliance requirement for an ephemeral, vendor-managed runner image.

For every other case — a predictable daily cadence above the break-even line — the worksheet shows the Figment entry price repaid inside the first week of the month. Request a configuration quote at Figment Mac hosting and start a runner at /mac-hosting/start.

Related guides: Speed up CI builds with a RAM disk on Mac · Multiple Xcode versions in CI · Remote Xcode setup on Windows


Subscribe for Figma design and website publishing guides.


Figment.so

Contact

Twitter

Website pricing

Compute index

About

Privacy

Terms