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.