GitHub Actions vs CircleCI: what the same workload costs
GitHub Actions sells minutes; CircleCI sells credits. To compare them you have to turn one workload into both units. This page shows how the two price lists work and prices three workloads on each with the calculator. It compares list prices only, not speed or features.
Two different meters
GitHub Actions charges a per-minute rate that depends on the runner, rounds each job up to a whole minute, and gives private repositories a monthly allowance of minutes on standard runners. Beyond the allowance you pay the runner's rate for each minute. The details are in how GitHub Actions minutes are billed.
CircleCI charges credits per minute, and the number of credits depends on the resource class, which is the machine size and executor type you pick for a job. A plan includes a monthly amount of credits, and more are bought in packs.
| Item | Free plan | Performance plan |
|---|---|---|
| Price | no charge | starting at $15 per month |
| Credits per month | 30,000 | 30,000 included |
| More credits | not listed | $15 for every additional 25,000 credits |
| Active users | up to 5 | 5 included, then $15 per user per month |
CircleCI describes the Free plan's credits as up to 6,000 build minutes and lists up to 400,000 free credits per month for open source projects. Its Scale plan shows no public price, so it is not compared here.
Credits per minute by resource class
| Resource class | Credits per minute | At the Performance pack price, per minute |
|---|---|---|
| Docker x86, Small (1 CPU, 2 GB) | 5 | $0.003 |
| Docker x86, Medium (2 CPU, 4 GB) | 10 | $0.006 |
| Docker x86, Large (4 CPU, 8 GB) | 20 | $0.012 |
| Docker x86 Gen 2, Medium (2 CPU, 4 GB) | 12 | $0.0072 |
| Linux VM, Medium (2 CPU, 7.5 GB) | 10 | $0.006 |
| Windows VM, Medium (4 CPU, 16 GB) | 40 | $0.024 |
| macOS VM, M4 Pro Medium (6 CPU, 28 GB) | 200 | $0.12 |
The dollar column divides the pack price by the pack size, which gives $0.0006 per credit, and multiplies by the credits per minute. It applies only to credits bought in packs on the Performance plan. Included credits and other plans change the real cost per minute.
On that arithmetic, a 2 CPU Docker Medium minute comes to the same $0.006 as GitHub's Linux 2-core rate. The smallest Windows and macOS machines on CircleCI's list have more CPUs than GitHub's standard Windows and macOS runners ($0.01 and $0.062 a minute), so their rates are not like for like.
How the calculator prices CircleCI
- Credits used = minutes times the credits per minute of the resource class you match to each GitHub runner. It uses the same minutes as the GitHub estimate, with each job rounded up.
- Credits beyond the 30,000 included are bought in whole packs of 25,000.
- The plan's starting price is treated as the least you pay in a month, not as a fee added on top of the packs.
- Users beyond the 5 included are charged the per-user price.
Docker layer caching (200 credits per job), storage (420 credits per GB) and network credits are left out.
Worked example 1: a small team
40 jobs a day, 6 minutes each, 22 working days, all on Linux 2-core in a private repository, 5 active users. That is 5,280 minutes a month.
| Service | How it was worked out | Per month | Per year |
|---|---|---|---|
| GitHub Actions, GitHub Team | 3,000 minutes included, 2,280 billed | $13.68 | $164.16 |
| CircleCI Performance, Docker Medium | 52,800 credits, 1 pack beyond the included credits | $15.00 | $180.00 |
| CircleCI Performance, Docker Gen 2 Medium | 63,360 credits, 2 packs beyond the included credits | $30.00 | $360.00 |
The first two rows are close. The third shows how packs behave: a resource class that uses 20% more credits per minute tips this workload into a second pack and doubles the month's bill. Packs make CircleCI's cost move in steps, while GitHub's moves by the minute.
Worked example 2: a busier team
120 jobs a day, 8 minutes each, 22 working days, same runner: 21,120 minutes a month.
| Service | How it was worked out | Per month | Per year |
|---|---|---|---|
| GitHub Actions, GitHub Team | 3,000 minutes included, 18,120 billed | $108.72 | $1,304.64 |
| CircleCI Performance, Docker Medium, 5 users | 211,200 credits, 8 packs | $120.00 | $1,440.00 |
| CircleCI Performance, Docker Medium, 8 users | 8 packs plus 3 users beyond the included 5 | $165.00 | $1,980.00 |
The GitHub rows are compute only. GitHub's plan seat prices are not in this site's data, so a fair total needs your own GitHub seat cost added to the GitHub side. The CircleCI rows include the users the Performance plan charges for.
Worked example 3: a light workload
10 jobs a day, 5 minutes each, 22 working days, is 1,100 minutes. On GitHub Free that fits inside the 2,000 included minutes and the calculator shows $0.00. On CircleCI with Docker Medium it uses 11,000 credits, and with 5 users or fewer the calculator flags that it fits within the Free plan's 30,000 credits.
What this comparison cannot tell you
- Speed. Machines with the same CPU count differ in memory, disk and processor between services. The same job rarely takes the same number of minutes on both, and the examples above assume it does.
- Per-job rounding on CircleCI. The data read for this site does not say how CircleCI rounds job time. The calculator uses the GitHub-style rounded minutes for both, which can overstate CircleCI's credits for very short jobs.
- Which plan offers which resource class. That was not in the text read from CircleCI's page, so check that the class you want is available on your plan.
- Everything that is not compute. Storage, network, Docker layer caching, discounts and taxes are outside both estimates.
Compare your own workload. The free calculator gives the GitHub Actions side. The full version prices the same workload on CircleCI's Performance plan, with the resource class for each runner chosen by you.