[Semi-OT] Cross-Platform GitHub Action

Jacob Carlborg doob at me.com
Wed Jun 9 05:20:14 UTC 2021


On Tuesday, 8 June 2021 at 19:40:01 UTC, kinke wrote:
> Thx for sharing! Interesting; I've recently worked on something 
> similar, but on Linux hosts and using a kvm/qemu/libvirt stack 
> for running CI jobs in Windows VMs.

Yeah, this is running on macOS instead because the Linux and the 
Windows runners on GitHub actions don't support nested 
virtualization. The Hypervisor framework is something similar to 
KVM. The VM images are actually created using QEMU (on Linux 
hosts), because Packer doesn't have any support for Xhyve. Packer 
will create a qcow2 VM image. At run time, the qcow2 image will 
be converted to the "raw" format, which is the only format that 
Xhyve supports. qcow2 is used up until runtime because it 
natively supports compression.

I do want to support other operating systems going forward, but 
unfortunately, it's only FreeBSD and OpenBSD that work in Xhyve. 
For other operating systems I will have to use QEMU. QEMU does 
support the Hypervisor framework as an accelerator, but I don't 
think it will be as fast as Xhyve.

When QEMU is supported, it will hopefully be trivial to add 
support for non-native architectures. I've already built the 
OpenBSD image for ARM64.

--
/Jacob Carlborg


More information about the Digitalmars-d-announce mailing list