Skip to content

ci: restore BSD unit tests with QEMU - #4129

Open
crazy-max wants to merge 2 commits into
docker:masterfrom
crazy-max:ci-vmactions-bsd
Open

crazy-max wants to merge 2 commits into
docker:masterfrom
crazy-max:ci-vmactions-bsd

Conversation

@crazy-max

@crazy-max crazy-max commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

Restores the FreeBSD, OpenBSD, and NetBSD unit test matrix removed in #3727 using Ubuntu-packaged QEMU with KVM, and removes the obsolete Vagrant configurations. Uses FreeBSD 14.5, OpenBSD 7.9, and NetBSD 10.1 guest images published by cross-platform-actions, with VM orchestration handled by a repository-owned script.

This removes our dependency on HCP Vagrant's box registry ahead of its December 31, 2026 shutdown. The HashiCorp announcement confirms that the Vagrant CLI will remain available; the registry is being retired.

Runs QEMU as the runner user and tests as an unprivileged guest user. Transfers tracked sources into the VM and retrieves only coverage, preserving test failures even when coverage collection succeeds. Retains coverage uploads and the job's best-effort behavior, with progress logs, startup diagnostics, and cleanup of temporary VM files.

The additional commit fixes a path test exposed by OpenBSD's symlinked temporary directory. It resolves the temporary directory before constructing expected paths, leaving production code unchanged.

@crazy-max
crazy-max force-pushed the ci-vmactions-bsd branch 2 times, most recently from ba98fe8 to dd60fb2 Compare October 16, 2026 10:55
@crazy-max
crazy-max force-pushed the ci-vmactions-bsd branch 2 times, most recently from 62877d1 to 9ffa5b5 Compare October 16, 2026 12:14
@crazy-max crazy-max changed the title ci: restore BSD unit tests with vmactions ci: restore BSD unit tests with QEMU Oct 16, 2026
Restore the FreeBSD, NetBSD, and OpenBSD unit test matrix with a
GitHub Actions script and remove the obsolete Vagrant configurations.
Run Ubuntu-packaged QEMU as the runner user with KVM access, using
prepared FreeBSD 14.5, NetBSD 10.1, and OpenBSD 7.9 guest images.

Transfer tracked sources into the guest, run tests as an unprivileged
user, and retrieve only coverage while preserving test failures and
the job's best-effort behavior. Keep VM state in runner temporary
storage and add progress logs, startup diagnostics, and cleanup.

Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
Resolve symlinks in the test temporary directory before constructing
paths and expected results. This avoids mismatches when the temporary
directory contains a symlink, as with /var/tmp in the OpenBSD CI image.

Preserve the existing Windows long-path normalization.

Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
@crazy-max
crazy-max requested a review from tonistiigi October 16, 2026 12:26
@crazy-max
crazy-max marked this pull request as ready for review October 16, 2026 12:26
@crazy-max crazy-max added this to the v0.39.0 milestone Oct 16, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant