I have an slightly-off-topic question: If I want to test that my opensource project builds and runs on MacOS, what's the cheapest way for me to do this? AWS seems like a fairly expensive way do this at $15 USD per day
You can use this GitHub action [1] to get SSH access to a GitHub runner. If you need access to the GUI you should be able to use ngrok, perhaps with this GitHub action [2]. I've tried tmate both with Linux and macOS runners. I've only tried ngrok with Linux runners.
CircleCI supports macOS runners and has native support for rerunning failed builds with SSH access. So just setup a job that always fails.
I've never really understood Hetzner's offering, I can get paying €2.4 for a quick one off or a once a month build but I don't get how €98 + €49 per additional month is better than buying a Mac Mini on a payment plan.
If in a business context the alternative is "the CI macs, that sit in some corner of some office under a desk and hopefully don't get unplugged", maybe with a side of "and IT hates unapproved servers and also won't put our macs in their DC", I can see it making some sense.
It is straightforward to run an x86 macOS VM on Linux with QEMU & KVM. It's against the EULA to do so on non-Mac hardware, but technically it is possible.
"Virtual Hackintosh" is definitely quite popular, especially in regions where EULAs are not enforceable. But no one has managed to emulate the M1 enough to run the full OS yet[1], so that's a strictly x86-only option.
You don't need to leave the machine running (and billing) 24/7/365—turning it on for a few hours a day when you're building for it, or testing builds, should be enough.
"Amazon EC2 Mac instances are available for purchase as Dedicated Hosts through On Demand and Savings Plans pricing models. Billing for EC2 Mac instances is per second with a 24-hour minimum allocation period to comply with the Apple macOS Software License Agreement"
There's a minimum charge of 24 hours. macOS's license only permits renting the machine to a single buyer per day, so if you use it for five minutes then turn it off that machine is idle for the rest of the day.
Unlike other EC2 instances, you have to "reserve" a host, and the MAC instances require a minimum of a 24 hour reservation, that you pay for regardless of the instance state.
It can be hard to justify $15.60 every time I want to test some random thing. Not to mention I seem to recall you can't actually cancel a reservation till the 24 hour window is up, so you need to remember to stop it the next day, or automate that action somehow.