What a deploy costs in GitHub Actions minutes
A deploy workflow is a handful of jobs: build the artifact, run the last checks, push it out. Its cost is the billed minutes of those jobs times the rate of the runner. This page prices four sizes of deploy on the standard runners and then spreads a month of deploys over a GitHub Team allowance, with this site's calculator.
The formula in words
Add up the jobs of one deploy, each rounded up to a whole minute: a job that takes 2 minutes and 30 seconds is billed as 3. Multiply the minutes by the per-minute rate of the runner. That is the cost of the deploy once the plan's included minutes are used up. Inside the included minutes, and in a public repository on standard runners, the deploy costs $0.00 in compute.
Four deploys, priced
| Deploy | Jobs | Minutes | Linux 2-core x64 | Linux 2-core arm64 | Windows 2-core | macOS |
|---|---|---|---|---|---|---|
| 1 job of 10 minutes | 1 | 10 | $0.06 | $0.05 | $0.10 | $0.62 |
| 2 jobs of 10 minutes | 2 | 20 | $0.12 | $0.10 | $0.20 | $1.24 |
| 3 jobs of 10 minutes | 3 | 30 | $0.18 | $0.15 | $0.30 | $1.86 |
| 4 jobs of 15 minutes | 4 | 60 | $0.36 | $0.30 | $0.60 | $3.72 |
A single-job deploy of a static site or a small service is $0.06 on Linux 2-core x64. A build, test and release pipeline of three 10-minute jobs is $0.18. The same 30 minutes on macOS, the size of an app-store release build, is $1.86. On Linux a deploy is cheap enough that the count of deploys, not the size of one, decides the bill.
A failed deploy that is run again is billed again. One full rerun of the three-job pipeline makes that deploy cost $0.36 instead of $0.18; rerunning only the failed job costs only that job's minutes.
A month of deploys on GitHub Team
GitHub Team includes 3,000 minutes a month. Take the three-job, 30-minute deploy on Linux 2-core x64 in a private repository, with nothing else drawing on the allowance:
| Deploys per month | Minutes per month | Minutes billed | Cost per month | Average per deploy |
|---|---|---|---|---|
| 20 deploys | 600 | 0 | $0.00 | $0.00 |
| 100 deploys | 3,000 | 0 | $0.00 | $0.00 |
| 200 deploys | 6,000 | 3,000 | $18.00 | $0.09 |
| 500 deploys | 15,000 | 12,000 | $72.00 | $0.14 |
| 1,000 deploys | 30,000 | 27,000 | $162.00 | $0.16 |
A hundred deploys of this size use the allowance exactly. After that each one adds its full $0.18, and the average per deploy climbs towards that figure as the allowance is spread over more of them: $0.09 at 200 a month, $0.16 at 1,000.
The allowance is not reserved for deploys. Pull-request checks, scheduled workflows and every other run in the account draw on the same 3,000 minutes, and in most accounts those use it up long before the deploys do. If that is your case, read the first table: every deploy costs its full price.
To reproduce a row in the calculator, enter 3 as jobs per day (the jobs of one deploy), 10 minutes per job, and the number of deploys in the working-days field. The calculator multiplies the three, which is all the formula needs.
Deploying on every merge
Continuous deployment trades a few large deploys for many small ones. A team that deploys once per working day runs this pipeline 22 times a month: 660 minutes, $3.96 at the Linux 2-core rate. A team that deploys on every merge, ten times a day, runs it 220 times: 6,600 minutes and $39.60. Ten times the deploys is ten times the minutes; nothing about deploying more often makes a single deploy cheaper or dearer.
What does change the price of one deploy is what the workflow repeats. A deploy that rebuilds and retests what the pull request already built pays for those minutes twice. Reusing the artifact from the merge commit's own CI run, where your process allows it, removes the build job from the deploy.
All figures are compute only, for standard GitHub-hosted runners; seats, storage, the hosting you deploy to and taxes are left out.
Price your own deploys. Count the jobs of your deploy workflow and their average length, then enter them with your deploys per month in the free calculator.