Wen apple targets available on Linux?
# multiplatform
m
Wen apple targets available on Linux?
l
I don’t know if that can happen. Apple only provides a compiler for MacOS. They would have to build a compiler that runs on linux.
I don’t see them doing that any time soon. You’re best off getting a cheap macbook or using something like CodeMagic or some other service if you need to build an Apple target.
j
This is really frustrating, especially with cloud providers having little support for macOS agents, or they have some but without Docker... But well that's Apple in a nutshell
l
Yeah. I had to go get a macbook air for my KMM on iOS development.
It turns out the simulator isn’t even running a full iOS, so I may have to go get an iPhone SE too. Well played Apple, well played.
😣 1
m
I currently run Macos via KVM and ssh in. It won't cut it though with some upcoming work that I have which is very unfortunate.
It turns out the simulator isn’t even running a full iOS, so I may have to go get an iPhone SE too. Well played Apple, well played.
r
Grab an ipod touch before they're all gone if you want a cheaper physical device.
j
Otherwise the entry level iPad is also a good deal and has a way newer chip. (A13) So will have way more years of support than the iPod.
And find offers through comparison websites since they are likely quite a bit cheaper than through Apple themselves. Or you can find heavy discounts on slightly older models which are not sold by Apple anymore.
j
@Jurriaan Mous yes, and I'm using GitHub's macOs agents, but the point is they can't install docker on them due to licensing. So I have to spend 7-10min on every build to install docker
j
But why do you need to run docker on a macOS pipeline? Since then you are basically running Linux programs on macOS? Can't you do the docker work in Linux containers and build the macOS/iOS artifacts and do tests on macOS? It should be possible to set up workflows involving different OSes. Or do you have specific needs?
j
I need docker to run services that are required for testing macOS code (for instance an automated websocket server to test my native websocket client). I'm guessing this is a pretty common need
j
A service for testing is indeed a common need but for those docker is not always needed. Is there a way to run the websocket server on macOS itself? It would I guess be trivial to start a ktor server as you also need the jvm for Kotlin. It would save you the trouble of installing docker. Or are there specific dependencies which would require a docker container in your setup?
j
It's a specific program called Autobahn Test Suite, so I can't do it with Ktor (otherwise I would have to reimplement all of it - I'm actually thinking about it honestly). Another way to run it would be to install their tool outside docker, but that requires dealing with Python 2 and virtualenv, and I wasn't ready so far to go down that rabbit hole. Basically this is what docker is for: they packaged their tool in its own containerized environment, so we just have to run the container. Dealing with the install myself is going backwards. Also, I don't want to deal with that on every developer machine, so it's much better to have the build run a docker-compose test server when running gradle tests. If I can't do that on CI it means it will be different from local environment, which is a pain in itself but also brings more complexity to the build.
j
Ok, I understand your considerations. With these kinds of dependencies you will have some other balances. For dev machines you could still use docker but it could indeed be that installing those dependencies and running on macOS is still too much hassle. An alternative is to have dedicated macOS servers in the cloud which have docker preinstalled which you can put to use for the CI jobs. You could even have a scheduler to spin it or them down after work hours and weekends to save money. We did something similar with in cloud CI runners at last place I worked at.
j
Thanks for the suggestions. Since this is for an OSS project, I try to keep the costs to a minimum, so I can't afford an external worker at the moment. So I guess I have to either bear the pain of waiting for docker to be installed, or bear the pain of installing the tool suite natively on every run (which might not even be faster) and complexify the build. The option I'm considering the most now is to just reimplement the whole test suite engine as a Ktor server. It might be worth the effort
j
I can imagine that waiting for minutes for a docker install makes you consider options. Another option maybe is to look into if the docker container or install can be slimmed down. Good luck!!
👍 1
🙏 1