Skip to content
Latchkey

GitHub Actions Pricing Explained: Minutes, Runners & Real Cost

GitHub Actions looks free until it is not. Here is exactly how the billing model works and which line items quietly add up.

GitHub Actions is billed on compute minutes. Public repos are free; private repos get a monthly included allowance and then pay per minute. The details - OS multipliers, larger-runner rates, and storage - are where bills surprise teams.

Included minutes and overage

Private repos get a monthly free allowance (e.g. 2,000 minutes on Free, more on Team/Enterprise). Past that you pay per minute. The allowance only applies to standard runners.

OS multipliers

Minutes are not equal. Linux is the base rate; Windows is ~2x and macOS is ~10x the Linux per-minute price. A macOS-heavy mobile pipeline burns the allowance roughly ten times faster.

  • Linux 2-core: ~$0.008/min
  • Windows 2-core: ~$0.016/min
  • macOS: ~$0.08/min and up

Larger runners bill from minute one

Larger runners (4, 8, 16, 32, 64 vCPU) are billed per minute with no free allowance and a higher rate. They are convenient for big builds but are where invoices balloon.

The hidden cost: re-runs

Every flaky failure you re-run is minutes paid twice. At scale, transient failures can add 10–20% to a CI bill - pure waste that self-healing runners eliminate.

Key takeaways

  • You pay per compute minute past a monthly allowance (standard runners only).
  • Windows ~2x and macOS ~10x Linux minutes.
  • Larger runners bill from the first minute, no free tier.
  • Flaky re-runs are a silent 10–20% tax on your bill.

Frequently asked questions

Are public repositories really free?
Standard runners on public repos are free. Larger runners and some features still bill, and self-hosted/managed runners are about control and cost at scale.

Related guides

See what you would save - Latchkey managed runners with self-healing. Start free →