GitHub Actions for validating Ansible and testing infrastructure changes in disposable virtual machines. Create a Lima and QEMU guest from your configuration, run your checks, publish test and coverage reports, and verify that the guest is removed afterward.
Your repository supplies the guest configuration and test scenario. The actions handle VM operations and reporting; your workflow controls their sequence and can run several test steps against the same guest.
Execute test playbooks and first-party collection sanity through maintained Ansible actions. Publish test summaries, annotations, PR comments and report artifacts.
Install Lima and QEMU, start an isolated guest from a required vm-config, and
roll back resources if startup fails.
- Test VM
Run Bash commands or a script inside the guest and collect test-generated reports, including after test failure. Publish GitHub summaries, annotations, PR comments and report artifacts, with optional Codecov upload.
Verify guest deletion before removing its private runtime and SSH keys. Failed cleanup remains visible and preserves the runtime for a retry.
For Ansible, check out your repository on a Linux runner. Pass its pinned Ansible requirements file and test playbook or collection paths to ansible/test.
For VMs, use an ephemeral Linux x86-64 runner with KVM and network access. Check out your
repository with persist-credentials: false, and provide a Lima YAML configuration
and Bash test commands or a script. Checkout files are not mounted into the guest.
Compose vm/create, vm/test and vm/destroy in the same job, pinning all three
to the same reviewed commit SHA. Schedule destruction with always() so cleanup
runs after test or reporting failures.
Start with the workflow example.
Each action's readme documents its inputs, outputs and failure behavior.
GitHub reporting needs pull-requests: write for PR comments; Codecov mode needs
id-token: write and explicit report selection. Publish only reports suitable
for your repository's visibility.
Read the contributing guidelines for development, validation and release conventions before opening a pull request.
Hoverkraft · contact@hoverkraft.cloud
- Site: hoverkraft.cloud
- GitHub: @hoverkraft-tech
MIT · Copyright © 2026 hoverkraft