Skip to content
compiler.dev

GitHub Actions Pricing Explained: Cost per Minute

GitHub Actions cost depends on four things: which runner you use, how many minutes it runs, how many free minutes your plan includes, and storage for caches and artifacts. This guide explains the GitHub Actions cost per minute for private repos, what the free tier covers, and how cache pricing works. Prices are GitHub's list prices in USD, checked against GitHub's documentation on 2026-10-10. They can change, so confirm on GitHub's billing page before budgeting. To plug in your own numbers, use the GitHub Actions cost calculator.

What is free

  • Public repositories: standard GitHub-hosted runners are free. Public repositories also get 4 vCPU and 16 GB for the standard Linux runner at no charge.
  • Private repositories: each plan includes free minutes per month on standard runners:
PlanIncluded minutes per month
GitHub Free2,000
GitHub Pro3,000
GitHub Team3,000
GitHub Enterprise Cloud50,000

Larger runners are not covered by the free minutes: every minute on them is billed.

Cost per minute for private repos

Standard runners, after free minutes are used up, and larger runners from the first minute:

RunnervCPUPrice per minute
Linux standard (ubuntu-latest)2$0.006
Linux larger4$0.012
Linux larger8$0.022
Linux larger16$0.042
Linux larger32$0.082
Windows standard2$0.010
Windows larger8$0.042
macOS standard (M1)3$0.062
macOS larger (Intel)12$0.077
macOS XL (M2 Pro)5$0.102

Larger Linux arm64 runners are cheaper than the x64 rows and are not listed here. The full table is in the runner specs tool.

Minute multipliers for free minutes

Free minutes are measured in Linux-equivalent minutes. A Windows minute uses 2 free minutes, and a macOS minute uses 10. So 2,000 free minutes on GitHub Free is 2,000 Linux minutes, or 1,000 Windows minutes, or 200 macOS minutes. See macOS runners for iOS CI for what that means for mobile teams.

Rounding

GitHub rounds each job's time up to the nearest whole minute for billing. A job that takes 61 seconds is billed as 2 minutes, and a workflow with 20 tiny jobs pays 20 minimums. Combining very short jobs, or using a single job with several steps, can lower the bill.

Worked example

A private repository on GitHub Team runs 600 pull request builds per month, each 12 minutes on a standard Linux runner:

  • Minutes used: 600 x 12 = 7,200
  • Free minutes: 3,000
  • Billable: 4,200 minutes x $0.006 = $25.20

Now shard the tests into 4 jobs of 5 minutes each (setup included): 600 x 4 x 5 = 12,000 minutes. Wall-clock time falls from 12 minutes to 5, billable minutes rise to 9,000 x $0.006 = $54. That is the real trade-off; the test sharding planner models it, and the CI minutes forecaster projects a month.

Moving the original job to an 8-core larger runner at $0.022 costs 600 x minutes x $0.022 with no free minutes: if the job drops from 12 to 6 minutes, that is 600 x 6 x $0.022 = $79.20. A larger runner is paid for with speed, not savings, unless the job gets more than proportionally faster.

Cache pricing

Caches are included up to 10 GB per repository by default. Administrators can raise the limit, and storage above 10 GB is billed to the account. Caches not accessed for 7 days are deleted, and the oldest are evicted when you hit the limit. Details and fixes are in GitHub Actions cache limits. Check GitHub's billing documentation for the current per-GB rate before raising it.

Artifacts and logs

Artifacts and packages use a storage allowance by plan, and artifacts are retained 90 days by default. Lower retention-days on large, short-lived artifacts to save storage.

Other things that appear on the bill

  • Larger runner minutes with no free allowance.
  • Static IP and other networking add-ons for larger runners.
  • Storage above plan limits.
  • Self-hosted runners: GitHub does not charge per minute for the runner itself on self-hosted machines under the pricing we checked, but you pay for the machines. Check GitHub's docs for any current changes.

How to lower the bill

Cancel superseded runs, skip jobs on docs-only changes, cache, and cut the matrix. The full list is in reduce your GitHub Actions bill, with forecasting methods in forecast CI costs.

If you use third-party runners, per-minute rates are lower on public pages: compiler.dev lists Linux 8 vCPU at $0.009 per minute and macOS M4 Pro at $0.028 per minute, and it was faster than GitHub's 2-core runner on 15 of 19 benchmarked stacks, by 1.1 to 3 times. The faster runners guide compares several providers with dated prices. For slow pipelines, start at the slow CI hub.

FAQ

How much does GitHub Actions cost per minute?

For private repositories, a standard 2 vCPU Linux runner is $0.006 per minute after free minutes. Larger runners start at $0.012 per minute for 4 vCPUs. See the table above.

Is GitHub Actions free for private repos?

Partly. Each plan includes free minutes on standard runners (2,000 on Free, 3,000 on Pro and Team, 50,000 on Enterprise Cloud). After that you pay per minute.

Is GitHub Actions free for public repositories?

Standard GitHub-hosted runners are free for public repositories.

Does GitHub charge for cache storage?

Caches up to 10 GB per repository are included. Raising the limit bills the additional storage used.

Made by compiler.dev. Free tools · Pricing