GitHub Actions vs Codemagic

GitHub Actions is general CI for GitHub repositories: each job gets a fresh VM for up to 6 hours, on Linux, Windows or macOS. Codemagic is CI built for mobile apps: each build gets a fresh Mac mini, Linux or Windows machine for up to 120 minutes, with code signing and store publishing built in.

The companies and products

GitHub Actions

GitHub Actions is GitHub's CI/CD service: workflows in your repository run as jobs on runners that GitHub hosts or that you host yourself.

GitHub Actions is a CI service, not a sandbox API. Each job on a GitHub-hosted runner gets a new VM, Linux and Windows on Azure and macOS on GitHub's own Mac fleet, with passwordless sudo, and the VM is gone when the job ends. It is built for building, testing and deploying the code in a repository, and GitHub's own Copilot cloud agent and the Claude and Codex agents on GitHub also run on Actions runners.

Codemagic

Codemagic is a cloud CI/CD service built for mobile developers: it builds, tests and publishes iOS, Android, Flutter and React Native apps.

You describe a workflow in codemagic.yaml, and each build runs on a new virtual machine: an Apple silicon Mac mini with Xcode, an Ubuntu Linux machine, or a Windows machine. The machine is destroyed when the build finishes, and the result can go straight to App Store Connect, Google Play and other stores. It is built for app teams that want builds and code signing handled for them; it is a different kind of product from an agent sandbox, and the two overlap only where an agent needs a machine for a short, scripted job.

Which use cases each one fits

For each use case, Battleships prices every sandbox provider on the same workload and sorts them from the cheapest monthly bill up. “100th cheapest of 377” means 99 of the other 376 providers run that workload, with every feature it needs, for less. “With limits” means the provider runs it but misses something, so it is listed after every full match. Open a use case for its whole ranking and what each provider misses.

Use case and its workloadGitHub Actions: price rankCodemagic: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory needs agents that keep their checkout and services between tasks; GitHub Actions wipes the VM after at most 6 hours and Codemagic after at most 2.
298th of 367, with limits
$5,853 a month
362nd of 367, with limits
$32,718 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
An assistant that lives on its machine all month fits neither CI service, since both start every job on a clean machine; a boat sandbox keeps running and keeps its disk.
333rd of 366, with limits
$10,692 a month
364th of 366, with limits
$98,550 a month
5th cheapest of 366
$657 a month
Code interpreter bursts
100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month
Both start a fresh VM for each job and bill by the minute, which suits builds better than many tiny code runs.
294th of 345, with limits
$721 a month
337th of 345, with limits
$9,147 a month
186th of 345, with limits
$2,000 a month
Sandboxes for your users
300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month
GitHub's terms do not allow offering Actions to your own users as a service, and Codemagic sells build slots one at a time, so neither is built for this.
308th of 361, with limits
$2,892 a month
349th of 361, with limits
$28,497 a month
Cheapest of 361
$209 a month
RL rollouts
1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month
304th of 360, with limits
$14,721 a month
336th of 360, with limits
$135 a month
34th of 360, with limits
$2,000 a month
Agent evals
250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month
303rd of 364, with limits
$1,962 a month
363rd of 364, with limits
$10,947 a month
10th cheapest of 364
$200 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
GitHub Actions is the native CI for a GitHub repo, while Codemagic's smallest Linux machine is 8 vCPU / 32 GB; boat suits CI that wants a warm disk between runs.
100th cheapest of 377
$1,012 a month
207th of 377, with limits
$3,387 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
A dev box needs a disk that stays and a way in; GitHub runners take no inbound traffic, Codemagic opens SSH only per build, and boat keeps the disk when stopped.
279th of 368, with limits
$159 a month
191st of 368, with limits
$333 a month
18th cheapest of 368
$26 a month
Computer-use agents
50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month
Codemagic lets a person open VNC or RDP on a build machine and GitHub runners are headless, but only boat streams a 60fps desktop an agent can drive.
292nd of 369, with limits
$1,768 a month
71st of 369, with limits
$10,047 a month
6th cheapest of 369
$200 a month
Browser-use agents
50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month
135th of 367, with limits
$942 a month
151st of 367, with limits
$10,947 a month
7th cheapest of 367
$200 a month
Scraping & bots (startup scale)
50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month
134th of 346, with limits
$1,184 a month
148th of 346, with limits
$13,310 a month
6th cheapest of 346
$90 a month
Mass scraping & bots (undetectable)
1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month
301st of 338, with limits
$28,971 a month
337th of 338, with limits
$263 a month
71st of 338, with limits
$1,800 a month
Parallel red teaming
200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month
70th of 360, with limits
$467 a month
95th of 360, with limits
$6,672 a month
2nd cheapest of 360
$200 a month
GPU eval jobs
10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month
Can't run itCan't run itCan't run it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Both have real macOS: GitHub Actions has hosted Apple silicon runners and Codemagic has Mac minis with Xcode ready; boat runs Linux only.
25th of 36, with limits
$1,178 a month
32nd of 36, with limits
$1,952 a month
Can't run it

Key features

FeatureGitHub ActionsCodemagicboat
Kind of productGeneral CI/CD: jobs run from workflow files in a GitHub repositoryMobile CI/CD: builds start from codemagic.yaml or the APISandbox API: create, stop, fork and reach machines from your code
Machine per runNew VM per job on Azure (Linux, Windows) or GitHub's Mac cloud, gone when the job endsNew VM per build, destroyed when the build completesFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts that lives as long as you want
How long a run can lastUp to 6 hours per job120 minutes per build on Free, Pay as you go and Fixed price; custom on EnterpriseNo session cap on paid plans
Files between runsFresh VM each job; files carry over only through cache, artifacts or custom imagesMachine and disk are deleted; only per-workflow dependency caches carry overDisk persists, saved every minute and on stop; a stopped sandbox costs nothing
Operating systemsLinux x64 and arm64, Windows x64 and arm64, macOSmacOS on Apple silicon, Linux (x64, arm64 on request) and WindowsLinux x64 only
Macs and XcodeHosted macOS runners on Apple silicon and IntelMac mini M2 and M4 with Xcode and iOS simulator runtimes preinstalledNone
GPUsLinux and Windows larger runners with an NVIDIA T4NoneNone
Docker and nested virtualizationDocker, and KVM on Linux runners after adding the runner user to the KVM groupDocker and Android emulators on Linux; no nested virtualization on macOSDocker, root, systemd and /dev/kvm on every machine
Reaching the machineNone; hosted runners take no inbound connectionsTemporary SSH, VNC or RDP through a gateway, turned on per buildSSH, HTTPS URLs on up to 50 ports, raw TCP
Desktop and computer useHeadless runners; browsers preinstalled for testsVNC or RDP for a person to debug a build; no computer-use APILinux desktop streamed at 60fps, Chromium, computer use API
Coding agentsCopilot cloud agent, plus Claude and Codex in public preview, working on issues and pull requests on Actions runnerscodemagic-init helps agents on your own computer write workflows; nothing runs agents on build machinesSeven agents preinstalled, driven from outside with a prompt, steer and events API
Keeping API keys out of the machineSecrets enter the job as environment variables and are hidden from logsEncrypted environment variables delivered into the build machineCredentials proxy for model providers and any HTTPS API; real keys never enter the sandbox
Self-hostingOpen-source runner on your own machines, free to useNoNo
Every feature Battleships tracks (43)
FeatureGitHub ActionsCodemagicboat
Full VM (own kernel)YesYesYes
Docker insideYesYesYes
Nested virtualizationYesYesYes
RootYesNot publishedYes
SystemdNoNoYes
Desktop GUINoYesYes
BrowserYesYesYes
Computer-use APINoNoYes
SSHNoYesYes
Persistent diskNoNoYes
Pause/resumeNoNoYes
Automatic snapshotsNoNoYes
Fork/cloneNoNoYes
Live fork (no pause)NoNoYes
Memory forkNoNoNo
Custom image (Docker or snapshot)YesNoYes
≥24 h sessionsNoNoYes
Idle auto-stopYesYesNo
Wake on requestNoNoNo
HTTPS preview URLsNoNoYes
Raw TCP inboundNoNoYes
Public IPv4NoNoNo
Egress allowlistYesNoNo
Secret proxyNoNoYes
Secret proxy for any APINoNoYes
Preinstalled agentsYesNoYes
Agent harness APIYesNoYes
MCP serverYesNoNo
GPUYesNoNo
WindowsYesYesNo
Arm64YesYesNo
Self-hostingYesNoNo
BYOCNoNoNo
Open sourceYesNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsYesNot publishedYes
Usage per sandbox (API)YesNoYes
Audit logsYesYesNo
SSOYesYesNo
SOC 2YesYesNo
HIPAANoNoNo
EU data residencyYesYesYes
Zero data retentionNot publishedNot publishedYes

Performance

GitHub ActionsNot measured
CodemagicNot measured
boat26.69 runs/s

There is no comparable CPU measurement for GitHub Actions or Codemagic in the hpc-sandbox-benchmarks test. boat did 26.69 runs per second on it at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts. Codemagic also sells fixed sizes, such as Linux X2 at 8 vCPU / 32 GB, so there is no 4 vCPU / 8 GB machine to set beside boat's.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. GitHub Actions and Codemagic have no published run in this suite yet, so there is no like-for-like number to compare.

Pricing in five scenarios

Each bill is priced from the providers' public price lists by the open Battleships engine, with the cheapest plan that runs the scenario.

ScenarioGitHub Actions, a monthCodemagic, a monthboat, a month
One coding agent, workdays
4 vCPU / 8 GB, 50 GB disk, 8 hours a day, 22 days a month, files kept between days
$80 · Team · with limits$333 · Free (individual) · with limits$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$354 · Team · with limits$333 · Free (individual) · with limits$26 · $20/mo
50 agents in parallel
50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside
$3,814 · Team · with limits$21,531 · Pay as you go (team, 4 concurrent) · with limits$317 · $20/mo × 3 seats
Sandboxes for your users
2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once
$1,092 · Enterprise Cloud · with limits$12,297 · Pay as you go (team, 4 concurrent) · with limits$200 · $100/mo × 2 seats
1,000 short jobs at once
2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month
$2,721 · Enterprise Cloud · with limits$27,147 · Pay as you go (team, 4 concurrent) · with limits$2,000 · $2000/mo · with limits

GitHub Actions: GitHub bills per minute per job, rounding each job up to the next minute, from $0.006 a minute for 2-core Linux. Plans include monthly minutes for standard runners only; larger and GPU runners are always billed.

Codemagic: Codemagic bills build minutes: $0.095 a minute on a Mac mini M2, $0.114 on an M4 and $0.045 on Linux X2 or Windows, with 500 free M2 minutes for individuals. Each extra build at once costs $49 a month, and fixed annual plans start at $3,990 a year.

Codemagic: Plans start at $20 a month, and the whole fee is usage credit spent per second while a sandbox runs. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

Neither CI service fits any of the five agent scenarios: GitHub Actions jobs end after 6 hours and Codemagic builds after 2, and neither keeps a disk. For many machines at once, GitHub's Enterprise Cloud stops at 500 concurrent jobs, while Codemagic's priced plan here allows 4 builds at once on machines no smaller than 8 vCPU / 32 GB. On boat the one scenario that does not fit is 1,000 short jobs at once, where starts above 90 a minute are queued.

ScenarioGitHub ActionsCodemagicboat
One coding agent, workdays
  • Team: sessions capped at 6 h
  • missing persistent disk
  • different kind of product: CI runner
  • Free (individual): sessions capped at 2 h
  • missing persistent disk
  • different kind of product: CI runner
  • no persistent disk: files lost when it stops or sleeps
None that bite
One agent that never stops
  • Team: sessions capped at 6 h
  • missing persistent disk
  • different kind of product: CI runner
  • Free (individual): sessions capped at 2 h
  • missing persistent disk
  • different kind of product: CI runner
  • no persistent disk: files lost when it stops or sleeps
None that bite
50 agents in parallel
  • Team: sessions capped at 6 h
  • missing persistent disk
  • different kind of product: CI runner
  • Pay as you go (team, 4 concurrent): max 4 concurrent
  • Pay as you go (team, 4 concurrent): sessions capped at 2 h
  • missing persistent disk
  • different kind of product: CI runner
None that bite
Sandboxes for your users
  • different kind of product: CI runner
  • Pay as you go (team, 4 concurrent): max 4 concurrent
  • different kind of product: CI runner
  • smallest size offered is 8 vCPU / 32 GiB
  • egress price not published
None that bite
1,000 short jobs at once
  • Enterprise Cloud: max 500 concurrent
  • different kind of product: CI runner
  • Pay as you go (team, 4 concurrent): max 4 concurrent
  • different kind of product: CI runner
  • smallest size offered is 8 vCPU / 32 GiB
  • egress price not published
  • max 2,400 starts/day (needs ~6,667)
  • max 600 starts/hour (needs ~1,000)
  • bursts above 90 starts/min are queued (a burst of 333 takes ~4 min to start)

Which one should you use?

Use GitHub Actions when

your code lives on GitHub and you want CI for Linux, Windows, macOS or arm64, jobs up to 6 hours, GPU runners or your own self-hosted runners.

  • Native CI for GitHub repos. For code that lives on GitHub, Actions runs on pushes and pull requests with checks, caches and artifacts built in.
  • Longer jobs and more of them. Jobs can run for 6 hours, and plans include 20 to 500 jobs at once without buying extra slots.
  • GPUs and your own runners. Teams that need a T4 GPU, arm64 Windows or their own hardware get hosted GPU runners and a free open-source runner.

Use Codemagic when

you build, sign and publish iOS, Android or Flutter apps and want Mac minis with Xcode and store publishing set up for you.

  • Mac minis with Xcode ready. iOS and macOS teams get M2 and M4 Mac minis with Xcode and iOS simulators already installed.
  • A full mobile release pipeline. Mobile teams get code signing and publishing to App Store Connect, TestFlight and Google Play built in.
  • A look inside a running build. When a build fails, a person can open SSH, VNC or RDP on the build machine to see what went wrong.

Where boat fits

Both are CI services: they run a scripted job on a clean machine and then throw it away. If what you are really running is agents that install tools, keep their work, serve an app and get steered while they run, boat gives each one a full Linux VM built for that. For iOS builds and store releases, keep Codemagic or Actions.

A machine that stays

GitHub Actions ends every job within 6 hours and Codemagic within 120 minutes, both on a fresh VM. Caches save only some folders, so an agent reinstalls and reclones each time. boat keeps the disk, saved every minute.

Reach it from outside

GitHub runners take no inbound connections, so a preview needs a tunnel inside the job. Codemagic opens SSH or VNC by hand, per build. boat gives HTTPS on 50 ports, raw TCP and a 60fps desktop.

Agents you drive from outside, keys kept out

Agents on Actions work from issues and pull requests, and Codemagic runs none on its machines. Both hand secrets in as environment variables the agent can read. boat keeps real keys in a credentials proxy.

Use boat when your agents need a machine that keeps running and keeps its files, with Docker, open ports, a desktop and coding agents you drive from outside. Compare it one to one: boat vs GitHub Actions and boat vs Codemagic.

Questions people ask

Is GitHub Actions cheaper than Codemagic?

Per minute it usually is: 2-core Linux starts at $0.006 a minute on GitHub, while Codemagic's Linux X2 is $0.045 and a Mac mini M2 is $0.095. For one coding agent on workdays, the closest setup is $80 on GitHub Actions and $333 on Codemagic, though neither fits that job, and boat is $20.

Which is better for iOS builds?

Both run real macOS. Codemagic is built for it, with Mac minis that have Xcode and iOS simulators ready and publishing to App Store Connect and TestFlight built in. GitHub Actions has hosted macOS runners that fit best when the rest of your CI is already there. boat runs Linux only.

How long can a job run on each?

A GitHub Actions job can run for up to 6 hours. A Codemagic build defaults to 60 minutes and can be set up to 120 on self-serve plans, or 180 on Enterprise. A boat sandbox has no session cap on paid plans.

Which is faster?

Neither has a comparable measurement in the hpc-sandbox-benchmarks CPU test, so there is no fair speed ratio. boat did 26.69 runs per second on it at 4 vCPU / 8 GB.

Can I run Docker and Android emulators on both?

Both run Docker. GitHub's Linux runners expose KVM for Android emulators once you add the runner user to the KVM group. Codemagic runs emulators on Linux but not on its Macs, which have no nested virtualization. Every boat machine has /dev/kvm.

Can I run AI coding agents on them?

On GitHub Actions, the Copilot cloud agent and the Claude and Codex agents work on issues and pull requests and use Actions minutes. On Codemagic an agent can only run as a build step that ends within 120 minutes. On boat agents come preinstalled and you prompt and steer them through an API.

Try boat

Install the CLI, then run boat new.

7-day free trial

More comparisons