Replace Vagrantfile with GitHub Action and virtual machines
Right now this repository has a Vagrantfile. This lists a huge amount of virtual machines. All VMs execute a script to collect factsets for different facter versions. We can heavily improve the setup:
- Update the script to rely openvox-agent and openfact
- create a github workflow that will be triggered manually
- Generate a CI matrix based on a list of operating systems
- in each VM, generate the factsets
- publish the factsets as github artifact in each job
- final job collects the artifacts and publishes them as a PR
Some additional documentation:
- https://github.com/OpenVoxProject/openvox-agent/blob/main/.github/workflows/acceptance.yml ->
- https://github.com/OpenVoxProject/shared-actions/blob/main/.github/workflows/beaker_acceptance.yml ->
- https://github.com/jpartlow/kvm_automation_tooling
Are all the operating systems we generate factsets for available in Github Actions?
Github offers Ubuntu, Windows and MacOS. But that doesn't matter here. The linked openvox-agent workflow uses the Ubuntu runners to start different virtual machines, within the runner, via nested virtualization. This isn't the most efficient setup, but we don't need a lot of performance. And the virtual machine can use whatever cloudimages are available.
I suppose we need VMs for proper kernel facts that containers wouldn't get right
Yes. That's why I had the idea with the nested virtual machines.