GitHub-hosted runners give you Ubuntu, Windows and macOS. VM Actions gives you
the rest. Each action in this organization boots a real, fully installed
operating system under QEMU inside an ordinary ubuntu-latest runner, syncs
your checked-out source tree into the guest, and runs your build and test
commands there -- on the real kernel, the real libc, the real package manager,
and, if you want, a real non-x86 CPU. No self-hosted runner, no container
trickery, no cross-compilation guesswork.
A job is one step:
jobs:
test:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v7
- uses: vmactions/freebsd-vm@v1with:
usesh: trueprepare: | pkg install -y gmakerun: | ./configure gmake gmake checkEverything else is optional: pick a release and an arch, choose how the
workspace is shared (rsync, sshfs, nfs or scp), pass environment
variables and secrets in with envs, set mem / cpu, forward ports with
nat, run later workflow steps directly inside the VM with a custom shell,
cache the VM image after prepare so repeat builds skip it, and switch on
debug-on-error to get a VNC shell into the machine at the exact moment your
build broke.
Writing the workflow is optional too: install the vmactions-ci skill and ask your coding agent for "run my tests on NetBSD aarch64" -- it knows the actions, the releases, the per-OS default shells and the footguns.
Pick a system from the table below. Images are built and booted by AnyVM.
| VM | GitHub Actions | Arch | Debug Shell |
|---|---|---|---|
| FreeBSD | vmactions/freebsd-vm@v1 | x86_64, aarch64, riscv64, powerpc64 | debug on error |
| OpenBSD | vmactions/openbsd-vm@v1 | x86_64, aarch64, riscv64, sparc64 | debug on error |
| NetBSD | vmactions/netbsd-vm@v1 | x86_64, aarch64, riscv64, sparc64 | debug on error |
| Solaris | vmactions/solaris-vm@v1 | x86_64 | debug on error |
| DragonFlyBSD | vmactions/dragonflybsd-vm@v1 | x86_64 | debug on error |
| MidnightBSD | vmactions/midnightbsd-vm@v1 | x86_64 | debug on error |
| GhostBSD | vmactions/ghostbsd-vm@v1 | x86_64 | debug on error |
| OmniOS | vmactions/omnios-vm@v1 | x86_64 | debug on error |
| OpenIndiana | vmactions/openindiana-vm@v1 | x86_64 | debug on error |
| Haiku OS | vmactions/haiku-vm@v1 | x86_64 | debug on error |
| Tribblix | vmactions/tribblix-vm@v1 | x86_64 | debug on error |
| Blissos(Android) | vmactions/blissos-vm@v1 | x86_64 | debug on error |
| GNU Hurd | vmactions/hurd-vm@v1 | x86_64, i386 | debug on error |
| OpenEuler | vmactions/openeuler-vm@v1 | x86_64, aarch64, riscv64, loongarch64 | debug on error |