Skip to content

CI: would be nice to test a variety of guests automatically #1173

Description

@iximeow

currently, in CI, PHD is run with the in-tree phd-tests/artifacts.toml, which tells phd about alpine.iso and OVMF_CODE.fd as well as the S3 bucket they get fetched from.

it would be nice to run PHD tests on other non-Alpine guests in CI. personally speaking, in validating changes around device emulation or anything substantially guest-related, I try to at least check out the device on the gamut of Ubuntu, Debian, Windows Server, OmniOS, and FreeBSD (plus Alpine usually) to theoretically cover the most likely guest drivers and kernels that might be driving Propolis.

while there is a Windows adapter for PHD (and Debian + Ubuntu!) we don't run those in CI yet because we don't have a great idea of how to make test images available without promising ourselves a long download time in CI, don't know how much space is available to put test images on (a test Windows is easily a 20g disk image). we ought to figure these things out and actually test other distributions in CI. hopefully such an answer could let us layer on other OSes and cover more of the examples I mentioned above.

practically speaking, test coverage under PHD is mostly "do guest drivers basically work, does the guest kernel basically work"; a collection of Linuxes are only interesting because there are different kernels that LTS images are based on, and different distros carry different patches for the kernel/init/other software which can make for per-distro surprises. testing Ubuntu and Debian and Alpine in CI may not be much more useful run-to-run than just picking one. more to say on this in a different Linux-specific issue though :)

(separate to this is the question of how useful are PHD tests with other guests! #1172 and more about that.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    testingRelated to testing and/or the PHD test framework.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions