[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