ARM64 Github CI
ryandesign at macports.org
Wed Mar 31 15:36:59 UTC 2021
On Mar 28, 2021, at 18:04, Fred Wright wrote:
> On Fri, 26 Mar 2021, Ryan Schmidt wrote:
>> On Mar 24, 2021, at 17:50, Joshua Root wrote:
>>> we would have to set up a self-hosted runner.
>> People have expressed interest in this (for x86_64) every now and then over the years, but as of now we have no ability to do this. Software would need to be written to allow this to happen. And then we would either need separate hardware to run it on, or the software would need to be written in such a way that it could coexist with the existing buildbot hardware (for example in a non-root MacPorts installation in another prefix, but a subset of ports are not able to be built in non-root installations).
> Does MacPorts play nicely with chroot?
As I recall, macOS does not play nicely with chroot. One of the problems was that you had to copy most of macOS into the chroot so that macOS libraries and frameworks could be used. And our experiments predated System Integrity Protection and other recent security innovations that probably make it even more difficult now.
> A VM would be another possibility
Yes certainly we would want to use a VM for CI build infrastructure. We already use VMs for buildbot infrastructure. The difference is that the buildbot VMs are persistent whereas the CI VMs would need to be ephemeral -- would need to be created anew for each CI run and deleted afterwards. VM snapshots or "non-persistent" disk mode might make that easy to achieve. But the code to drive such a system -- code that would, in response to a GitHub PR notification, tell the VM hypervisor to boot up a VM, then launch our CI runner within that VM to install MacPorts and do the build, then gather logs and publish them so they could be viewed in the PR, then shut down the VM -- has not been written. And once that's written, hardware needs to be purchased, whether in the form of additional SSDs, RAM, and faster CPUs for our existing Xserves or additional Xserves or other Macs.
And while that is conceivable for x86_64, the additional complication with arm64 is that I am not aware of a way to run arm64 macOS in a VM, whether on an arm64 Mac or on an x86_64 Mac.
More information about the macports-dev