Plainwork

Plainwork / Minutemeter / GitHub Actions price per minute: every runner, with examples

GitHub Actions price per minute: every runner, with examples

On a private repository, GitHub bills Actions by the minute and the price depends on the runner. These are the list prices from GitHub's runner pricing table (read 2026-10-12), with what they mean for real jobs. Standard runners are free in public repositories.

Price per minute by runner

RunnerPer minutePer 1,000 minutesMinutes for $1
Linux 1-core (ubuntu-slim)$0.002$2.00500
Linux 2-core (ubuntu-latest)$0.006$6.00166
Linux arm64$0.005$5.00200
Windows 2-core (windows-latest)$0.010$10.00100
macOS (macos-latest)$0.062$62.0016

What one job costs

Each job is rounded up to a whole minute, so a 20-second job is billed as 1 minute. Cost of one run of a job, by runner:

JobLinux 1-coreLinux 2-coreLinux arm64Windows 2-coremacOS
a 2-minute lint job$0.004$0.012$0.01$0.02$0.124
a 6-minute test job$0.012$0.036$0.03$0.06$0.372
a 15-minute build$0.03$0.09$0.075$0.15$0.93

What the free allowance buys

Private repositories include 2,000 minutes on Free, 3,000 minutes on Pro, 3,000 minutes on Team, 50,000 minutes on Enterprise Cloud a month. GitHub no longer prints per-OS multipliers, so converting the Free plan's 2,000 minutes at the price ratio (an estimate, not GitHub's statement) gives about:

  • Linux 1-core (ubuntu-slim): about 6,000 minutes
  • Linux 2-core (ubuntu-latest): about 2,000 minutes
  • Linux arm64: about 2,400 minutes
  • Windows 2-core (windows-latest): about 1,200 minutes
  • macOS (macos-latest): about 193 minutes

Check the arithmetic on your own workflows

Matrices multiply these prices, schedules multiply the runs, and a missing timeout-minutes means up to 360 billed minutes when a job hangs. The free calculator applies this table to the YAML you paste, and this guide explains the four multipliers. Rates change; check GitHub's page for the current table before you budget.

More from the catalogue

Other small tools

See everything →