CI on your own Macs,
without the
babysitting.
Macarun turns Macs you own into GitHub Actions runners. Every job runs in a clean macOS virtual machine that is deleted when it ends. Set up as the Mac app proposes, a host comes back on its own after a reboot or a power cut, and your phone hears about it when something needs you. It is nearly finished, and this is the page it will live on.
One image.
A fresh copy for every job.
The image is built on your Mac and stays there. Each job gets a copy nobody has touched, and gives it back to nobody.
Build an image
Macarun installs macOS from Apple's restore image on your Mac, adds your Xcode and tools from a recipe, and keeps the result. When Xcode moves, you point the recipe at the new version and bake again.
Run the job in a copy
A job gets its own clone of the image in its own VM, a GitHub runner registered for that one job, your signing identities in a keychain made for it, and the slot's cache disk.
Delete the copy
When the job ends, the VM is stopped and deleted, keychain and all. The cache disk stays. Everything else starts from the image again.
What a Mac CI host
should take care of.
And an honest word about what macOS allows.
Up to two at a time
macOS allows two virtual machines per Mac. Macarun sizes them to the Mac's memory and runs one or two, instead of pretending the limit isn't there.
A cache that stays warm
Each slot keeps its own cache disk for packages and derived data, the one thing that carries over from one job to the next, so incremental builds stay incremental.
Signing, per job
Your certificates and profiles go from the Mac into the VM for one job, the keys in a keychain made for it, and are deleted with the VM. Nothing signing-related sits in a guest between jobs.
Your GitHub App, one permission
Runners register through a GitHub App you create during setup, in your organization, with one permission and no access to code. Its key stays on your Macs.
Headless, and back on its own
The agent runs as a system service with nobody logged in. A host without FileVault, with the automatic login the Mac app proposes, comes back from a reboot, an update or a power cut on its own. A host with FileVault comes back from the restarts Macarun plans, and waits at the unlock screen after one it didn't.
A bad run explains itself
A VM that never came up, a runner that stopped answering or a job that ran out of time leaves the guest's own logs behind: the agent's, the runner's diagnostics, crash reports and the system log's errors, kept with the job's record before the VM is deleted, the job's secrets cut out. The Xcode result bundles of failed builds and tests come back from every job as well.
Your jobs never
touch our servers.
A small service of ours will keep your hosts in one view and deliver licenses. It is never in the path of a job.
On your Macs
- Your source, build logs and test results
- Your signing certificates, profiles and secrets
- Your GitHub App and its key
- Your images and caches
On ours
- Your team, its devices, and each host's name, model, macOS and agent version
- Each host's state: slots in use, free disk, its images
- Your subscription, from Paddle, and each Mac's license
If our service is unreachable, your Macs keep taking jobs. What pauses until it is back: notifications, the fleet view, remote actions, and secrets syncing between hosts. GitHub keeps handing jobs to whichever host is free.
On your Mac.
In your pocket.
A Mac app that sets a host up and watches all of them, and an iPhone app for when you're away from the desk. Both are being finished now.
Macarun for Mac
Sets up a host in a few steps: power settings, the system service, your GitHub App. Builds images, shows every host, slot and job, and opens a failed job where its logs are.
Macarun for iPhone
Every host at a glance. A notification when a runner goes offline, a host reboots, a disk fills up, an image build fails or a new Xcode is out. Pause, drain, restart or rebuild from wherever you are.
By the Mac,
not by the minute.
One price per Mac, whatever else the Mac is used for. Prices exclude VAT; Paddle, our reseller, adds it where it applies.
- Unlimited jobs, images and repositories
- Image recipes for each new Xcode, and the fixes each macOS release needs
- The Mac app and the iPhone app, for everyone on the team
- Email support from the person who builds it
Buying opens at launch.
Each Mac is its own subscription
Pay for the Macs you run. Add one or remove one from the Mac app at any time, and Paddle prorates the difference from that day.
No account
A team key, made at checkout, joins your Macs and your phone. There is nothing to sign in to; keep the key as you would a password.
Nearly there.
If you run CI on Macs today and would like to know when Macarun can be bought, write a line. You will get one message back when it is out, and nothing else.