CircleCI vs GitHub Actions with compiler.dev runners
Last updated
CircleCI is a hosted CI platform that bills in credits. GitHub Actions is built into GitHub and bills per minute. If your code is on GitHub and your main complaint is build time or cost, you can often stay on Actions and run it on faster machines, which is what compiler.dev does. This page compares the two honestly, including the places where CircleCI is better.
How CircleCI pricing works
CircleCI sells credits. On its pricing page (checked October 2026) the Free plan gives 30,000 credits a month, the Performance plan starts at $15 a month, and extra credits cost $15 per 25,000, which is $0.0006 per credit. Open source projects on the Free plan can get up to 400,000 credits a month for Linux, Arm and Docker.
Credits are spent per minute, depending on machine size. From CircleCI's price list (checked October 2026), an x86 Docker executor costs:
| Size | vCPU / RAM | Credits per min | Approx. $ per min |
|---|---|---|---|
| Medium | 2 / 4 GB | 10 | $0.006 |
| Large | 4 / 8 GB | 20 | $0.012 |
| X-large | 8 / 16 GB | 40 | $0.024 |
The dollar column is our arithmetic at $0.0006 per credit. Your effective rate depends on your plan and any prepaid discount, so treat it as a list-price estimate. CircleCI also lists a "Gen 2" Docker class at slightly higher credit rates.
Side by side
| CircleCI | GitHub Actions + compiler.dev | |
|---|---|---|
| Pricing model | Credits, plus a plan fee | Per minute, prepaid credit |
| Comparable 8 vCPU Linux | 40 credits/min (about $0.024) | $0.012/min (16 GB RAM) |
| 2 vCPU Linux | 10 credits/min (about $0.006) | GitHub $0.006/min, or compiler.dev 2 vCPU at $0.003/min |
| macOS | M4 Pro Medium (6 vCPU) 200 credits/min, about $0.12 | M4 Pro 7-core VM $0.028/min (early access) |
| Config | .circleci/config.yml | .github/workflows/*.yml |
| Caching | save_cache / restore_cache, plus Docker layer caching | actions/cache, plus caches on the machine |
| Self-hosted | Self-hosted runners | Self-hosted runners |
| Ecosystem | Orbs | Marketplace actions |
| Where it runs | CircleCI cloud, or your own runners | GitHub, with jobs on compiler.dev machines |
The 8 vCPU comparison is not perfectly like for like: CircleCI's x-large has 16 GB and a different CPU. Run your own job on both before you trust any single number.
Where CircleCI is genuinely better
- Test insights. CircleCI tracks flaky tests, slowest tests and timing trends per job in the UI. Actions has no built-in equivalent; you need a third-party tool.
- Automatic test splitting.
circleci tests split --split-by=timingsbalances shards by past timing data. In Actions you build this yourself, see test sharding on GitHub Actions. - SSH into a failed job. "Rerun job with SSH" is built in. Actions needs a community action for the same thing.
- Orbs and config reuse. Orbs package jobs, commands and executors with parameters. Reusable workflows in Actions cover a lot of this, but orbs are tidier for some patterns.
- Same platform for Bitbucket and GitHub repos. If you are split across hosts, one CI is simpler.
If those features carry your workflow, moving is a real loss, and a runner change will not give them back.
The case for GitHub Actions on faster runners
If the code is already on GitHub, Actions sits next to the pull request: checks, required statuses, merge queue, Dependabot and CODEOWNERS all work without a second system and a second login. Marketplace actions cover most tools.
The usual objection is that standard hosted runners are slow. That is a runner problem. compiler.dev runs the same workflow on 8 vCPU / 16 GB machines, a fresh VM per job, at $0.012 per minute, against GitHub's 8-core larger runner at $0.022. In our benchmarks of full CI runs, jobs were a median 1.5× faster across 18 measured stacks (15 faster, 2 the same, 1 slower) than GitHub-hosted runners, for example an Angular + Spring Boot + Postgres pipeline went from 6m57s to 2m18s. We did not benchmark against CircleCI, so we make no claim about that gap. See pricing for current rates.
If credit runs out or something fails, jobs fall back to your original runners, so CI keeps running.
Migration sketch
A typical CircleCI Node job:
version: 2.1
jobs:
test:
docker:
- image: cimg/node:20.11
resource_class: xlarge
steps:
- checkout
- restore_cache:
keys: [deps-{{ checksum "package-lock.json" }}]
- run: npm ci
- save_cache:
key: deps-{{ checksum "package-lock.json" }}
paths: [~/.npm]
- run: npm test
workflows:
main:
jobs: [test]
The GitHub Actions equivalent, on compiler.dev runners:
name: ci
on: [push, pull_request]
jobs:
test:
runs-on: [self-hosted, Linux, compiler-ci]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm test
Notes for a real migration:
- Move one repository first and run both CIs side by side for a couple of weeks.
- Replace CircleCI contexts with GitHub environments and secrets.
- Replace
parallelismandtests splitwith a matrix, see matrix builds. - Replace orbs with actions or reusable workflows.
- Cloud auth moves from CircleCI OIDC to GitHub OIDC, see OIDC to AWS.
To undo the runner change later, put runs-on back to ubuntu-latest. Get started by installing the GitHub App, or read the broader alternatives guide.
FAQ
Is CircleCI cheaper than GitHub Actions?
At list price, a 2 vCPU job costs about the same ($0.006 per minute on both). At 8 vCPU, CircleCI's list rate works out to about $0.024 per minute, and compiler.dev's is $0.012. Plan fees, free allowances and discounts change the picture, so model your own usage with the cost calculator.
Is CircleCI faster than GitHub Actions?
Not inherently. Speed depends on machine size, caching and test splitting. CircleCI's timing-based splitting is a real advantage if you do not already shard tests.
Can I use CircleCI and GitHub Actions together?
Yes. Many teams migrate one repository at a time and keep both running until the checks match.
What happens to my orbs?
Most orbs wrap a CLI. Install the CLI in a step, or use the matching marketplace action. Complex orbs may need a reusable workflow.
Related
- Migrate CircleCI to GitHub Actions: Step by StepMigrate CircleCI to GitHub Actions with a concept mapping table, side-by-side config translation, secrets, caching, the Importer and a cutover plan.
- Actuated vs compiler.dev: MicroVM RunnersActuated vs compiler.dev: microVM runners on servers you own at $150 a month per server vs hosted per-minute runners. Costs, effort and who each suits.
- Bitbucket Pipelines vs GitHub Actions with compiler.dev runnersBitbucket Pipelines vs GitHub Actions on compiler.dev runners: per-user pricing, build minutes, Jira integration, and a bitbucket-pipelines.yml migration.
- Blacksmith vs compiler.dev: Runner Price and SpeedBlacksmith vs compiler.dev for GitHub Actions runners: public prices checked October 2026, caching, macOS, free tiers, fallback, and who each suits.