We are heavy GitHub Actions users at Mirego. We run hundreds of workflows per day, across Ubuntu and macOS runners.
We quickly hit a showstopper for macOS runners: it’s impossible to increase the number of concurrent GitHub-hosted macOS jobs for a single organization without upgrading the whole organization plan 😞.
So we started to look into hosting our own runners, specifically for macOS.
One thing we wanted to focus on was to make the setup as reliable and maintainable as possible. In order to increase builds repeatability, each runner would have to run inside an ephemeral virtual machine (using Apple’s Virtualization framework). This way, whenever it picks up a job, the workspace is guaranteed to be in a clean state. Since this is also how the GitHub-hosted runners work, this can simplify interoperability.
It uses tools such as: