GitHub Actions pricing

How much do GitHub Actions minutes cost in 2026?

A standard GitHub Actions minute costs between $0.002 and $0.062 depending on the operating system and architecture, with the standard 2-core Linux runner billing at $0.006 per minute. On January 1, 2026, GitHub cut hosted runner rates by up to 39% across machine types, folding a $0.002 per-minute cloud platform charge into all published prices.

If you run private repositories, your account gets a monthly monetary compute pool rather than a set block of minutes ($12 on Free, $18 on Pro and Team, and $300 on Enterprise Cloud). Standard runners stay free on public repositories, while self-hosted runner billing remains on hold.

Standard runner rates and per-minute rounding

GitHub bills every runner job by the minute, and partial minutes never slide by. GitHub rounds the minutes and partial minutes each job uses up to the nearest whole minute. That means a quick test suite that finishes in 61 seconds bills as two full minutes, and a 5-second lint check still costs a full minute of runtime.

For standard GitHub-hosted environments, prices vary by operating system and architecture:

  • Linux 1-core (x64), SKU actions_linux_slim: $0.002 per minute
  • Linux 2-core (x64), SKU actions_linux: $0.006 per minute
  • Linux 2-core (arm64), SKU actions_linux_arm: $0.005 per minute
  • Windows 2-core (x64), SKU actions_windows: $0.010 per minute
  • Windows 2-core (arm64), SKU actions_windows_arm: $0.010 per minute
  • macOS 3-core or 4-core (M1 or Intel), SKU actions_macos: $0.062 per minute

Why run arm64? Linux arm64 drops your per-minute compute bill from $0.006 to $0.005 compared to the x64 equivalent, which adds up quickly when multiple engineers push commits all day. Windows runners cost almost double the standard Linux machine, while standard macOS runners sit at ten times the price of x64 Linux.

All runner charges in private repositories go directly to the repository owner. It doesn't matter who opened the pull request or triggered the workflow run; the bill lands on the account hosting the repo. If you're looking to clamp down on runaway loops before they trigger multiple rounded-up jobs, check our guide on how to stop a runaway GitHub Actions workflow before it burns minutes.

Included compute pools and storage limits

GitHub does not hand out fixed minute allocations on private accounts anymore. Instead, your plan comes with an included compute usage allowance expressed as a monthly dollar amount.

GitHub Free gives you $12 per month in compute usage. GitHub Pro gives you $18 per month, and GitHub Free for organizations gives you $12 per month. GitHub Team provides $18 per month, while GitHub Enterprise Cloud includes $300 per month. As a benchmark from GitHub's docs, $300 covers 50,000 minutes on a standard 2-core Linux runner at $0.006 per minute.

And storage has its own distinct billing rules. Each tier provides an included allowance for artifacts and package storage, alongside repository cache limits:

  • GitHub Free: 500 MB artifact storage, $12 compute usage, 10 GB cache per repo
  • GitHub Free for organizations: 500 MB artifact storage, $12 compute usage, 10 GB cache per repo
  • GitHub Pro: 1 GB artifact storage, $18 compute usage, 10 GB cache per repo
  • GitHub Team: 2 GB artifact storage, $18 compute usage, 10 GB cache per repo, 75 GB custom image storage
  • GitHub Enterprise Cloud: 50 GB artifact storage, $300 compute usage, 10 GB cache per repo, 150 GB custom image storage

Shared storage for artifacts and GitHub Packages beyond your plan allowance costs $0.25 per GB per month. Cache storage beyond the included 10 GB per repository costs $0.07 per GB per month. Custom image storage for larger runners over the allowance costs $0.07 per GB per month.

GitHub measures this storage in binary gigabytes (GiB), where 1 GB equals 1,073,741,824 bytes, and calculates billing in GB-Hours divided by the total hours in the month. Artifact usage updates every 6 to 12 hours, rounding to the nearest MB at month's end. Keep in mind that deleting an artifact stops future hourly accruals right away, but it won't erase the accrued storage charges already billed earlier in that billing cycle.

Runner pricing breakdown

The table below outlines the per-minute list prices across standard and larger runners, including Linux, Windows, macOS and GPU instances.

Runner SpecificationArchitectureSKUPrice per Minute (USD)
Linux 1-core standardx64actions_linux_slim$0.002
Linux 2-core standardx64actions_linux$0.006
Linux 2-core standardarm64actions_linux_arm$0.005
Windows 2-core standardx64actions_windows$0.010
Windows 2-core standardarm64actions_windows_arm$0.010
macOS 3-core or 4-core standardx64 / arm64actions_macos$0.062
Linux Advanced 2-core larger runnerx64linux_2_core_advanced$0.006
Linux 4-core larger runnerx64linux_4_core$0.012
Linux 8-core larger runnerx64linux_8_core$0.022
Linux 16-core larger runnerx64linux_16_core$0.042
Linux 32-core larger runnerx64linux_32_core$0.082
Linux 64-core larger runnerx64linux_64_core$0.162
Linux 96-core larger runnerx64linux_96_core$0.252
Windows 4-core larger runnerx64windows_4_core$0.022
Windows 8-core larger runnerx64windows_8_core$0.042
Windows 16-core larger runnerx64windows_16_core$0.082
Windows 32-core larger runnerx64windows_32_core$0.162
Windows 64-core larger runnerx64windows_64_core$0.322
Windows 96-core larger runnerx64windows_96_core$0.552
macOS 12-core larger runnerx64macos_l$0.077
macOS 5-core (M2 Pro) larger runnerarm64macos_xl$0.102
Linux 2-core larger runnerarm64linux_2_core_arm$0.005
Linux 4-core larger runnerarm64linux_4_core_arm$0.008
Linux 8-core larger runnerarm64linux_8_core_arm$0.014
Linux 16-core larger runnerarm64linux_16_core_arm$0.026
Linux 32-core larger runnerarm64linux_32_core_arm$0.050
Linux 64-core larger runnerarm64linux_64_core_arm$0.098
Windows 2-core larger runnerarm64windows_2_core_arm$0.008
Windows 4-core larger runnerarm64windows_4_core_arm$0.014
Windows 8-core larger runnerarm64windows_8_core_arm$0.026
Windows 16-core larger runnerarm64windows_16_core_arm$0.050
Windows 32-core larger runnerarm64windows_32_core_arm$0.098
Windows 64-core larger runnerarm64windows_64_core_arm$0.194
Linux 4-core GPU larger runnerx64linux_4_core_gpu$0.052
Windows 4-core GPU larger runnerx64windows_4_core_gpu$0.102

Larger runners and configuration rules

Larger runners cater to heavier compilation tasks, but they operate under strict account restrictions. They are only available to organizations and enterprises on the GitHub Team or GitHub Enterprise Cloud plans. You cannot provision them on personal plans.

Unlike standard runners, larger runners are not free for public repositories. If your open-source repository runs a job on a larger runner, you pay the regular per-minute SKU rate.

There are two major operational benefits with how GitHub prices these larger machines:

  1. You are only billed at the per-minute rate for the amount of time workflows actually execute on them. There is zero base fee for creating a larger runner that sits idle waiting for a build.
  2. Assigning public static IP addresses to a larger runner incurs no extra cost.

Eligible larger runner usage can draw down from your monthly included compute allowance ($18 on Team or $300 on Enterprise Cloud). However, larger runners always require a valid payment method on file, regardless of whether you have remaining included credit.

Self-hosted runners and free tiers

Standard GitHub-hosted runners remain completely free for public repositories, GitHub Pages builds, and Dependabot tasks. They do not burn down your plan's included dollar allowance.

Are self-hosted runners free? Yes. Self-hosted runners remain free and do not reduce your included compute balance. GitHub originally announced a $0.002 per minute cloud platform charge for self-hosted runners starting March 1, 2026, but subsequently postponed that billing change to re-evaluate its approach.

Customers using GitHub Enterprise Server were never subject to that proposed charge anyway. They can continue hosting, running and managing Actions on self-hosted instances with no platform fees.

Catching runaway spend and enforcing caps

If your account doesn't have a valid payment method on file, GitHub blocks all Actions jobs the moment you exhaust your monthly compute allowance. If you do have a payment method attached, GitHub bills overages at the standard per-minute rates.

GitHub sends automated email alerts when your included usage hits 90% and 100% during a billing period. But if a broken workflow loops overnight, an email alert might arrive long after you've accumulated unexpected charges. You can review our detailed walkthrough on how to stop GitHub Actions from billing past your budget for step-by-step configuration options.

You can also check your current account login using the GitHub CLI:

gh api user --jq .login

This is where automated billing tools help. Costbrake connects to GitHub to monitor your billing usage reports and active Actions runs alongside 22 other cloud and SaaS providers. It checks spend every hour on the Free plan and every 5 minutes on paid tiers, alerting on spikes (an hour costing over 3x the 7-day baseline and at least $5 more than usual) and month-end budget forecasts. If an overnight test matrix runs out of control, Costbrake provides a manual brake to disable the offending workflow and cancel queued jobs, or set your organization's Actions budget to $0. You can review Costbrake pricing or run the automated agent setup to connect your workspace.

Questions and answers

Are GitHub Actions free for open-source repositories?

Standard GitHub-hosted runners are free for public repositories, GitHub Pages, and Dependabot runs. Larger runners are never free for public repositories and bill at standard per-minute rates.

How does GitHub calculate fractional minutes?

GitHub rounds the minutes and partial minutes each job uses up to the nearest whole minute. A job running for 10 seconds or 65 seconds bills as one minute and two minutes respectively.

Are self-hosted GitHub Actions runners free in 2026?

Yes. Self-hosted runner usage does not draw from your included compute allowance and carries no per-minute platform fee, as GitHub postponed its previously announced March 2026 platform charge.

What happens when I hit my included compute limit without a credit card?

GitHub automatically blocks further Actions workflow execution once your monthly included compute dollars run out. Adding a valid payment method unblocks execution and allows metered billing.

Do I get billed for larger runners when no jobs are running?

No. Larger runners are only billed at their per-minute rate while workflows actively execute on them, and assigning public static IPs incurs no extra charge.

Sources

Updated