|
| 1 | +# Github Actions Acceptance Workflow |
| 2 | + |
| 3 | +[acceptance.yaml](.github/workflows/acceptance.yaml) |
| 4 | + |
| 5 | +This is a manual pipeline that can be triggered from the Actions tab |
| 6 | +of the GitHub repository. It runs the Beaker acceptance tests against |
| 7 | +either a pre-release build from |
| 8 | +https://artifacts.overlookinfratech.com, or released packages from the |
| 9 | +overlookinfratech.com repos. |
| 10 | + |
| 11 | +The pipeline makes use of nested virtualization to standup an agent |
| 12 | +of a given OS platform for the runner to run Beaker against. A matrix |
| 13 | +strategy builds out jobs for different os/version combinations. |
| 14 | + |
| 15 | +## Internals |
| 16 | + |
| 17 | +The workflow makes use of a composite action currently living in a |
| 18 | +Bolt module |
| 19 | +[kvm_automation_tooling](https://github.com/jpartlow/kvm_automation_tooling/blob/main/action.yaml). |
| 20 | + |
| 21 | +The action preps libvirt on the runner, installs Bolt and runs a |
| 22 | +[kvm_automation_tooling::standup_cluster](https://github.com/jpartlow/kvm_automation_tooling/blob/main/plans/standup_cluster.pp) |
| 23 | +plan which makes use of Terraform to generate a set of vms, set up |
| 24 | +ssh access and install the chose openvox-agent package. |
| 25 | + |
| 26 | +Then the workflow sets up ruby/beaker per the acceptance/Gemfile and |
| 27 | +runs another |
| 28 | +[kvm_automation_tooling::dev::generate_beaker_hosts_file](https://github.com/jpartlow/kvm_automation_tooling/blob/main/plans/dev/generate_beaker_hosts_file.pp) |
| 29 | +plan to set up the beaker hosts file. And then runs beaker. |
| 30 | + |
| 31 | +Note acceptance/Rakefile is not used in this workflow. That process |
| 32 | +relies on tasks provided by beaker-puppet which are tied to Perforce |
| 33 | +internals and repositories. |
| 34 | + |
| 35 | +Instead the kvm_automation_tooling plans installs openvox-agent |
| 36 | +packages using another Bolt module |
| 37 | +[openvox_bootstrap](https://github.com/jpartlow/openvox_bootstrap/). |
| 38 | +This module has an install task which servers the same purpose as the |
| 39 | +puppet_agent module install task: initial installation of the agent. |
| 40 | +The openvox_bootstrap module is configured to use the voxpupuli |
| 41 | +repositories. |
| 42 | + |
| 43 | +The module also has an |
| 44 | +[openvox_bootstrap::install_build_artifact](https://github.com/jpartlow/openvox_bootstrap/blob/main/tasks/install_build_artifact.json) |
| 45 | +task, which is what is used to install pre-release builds for testing |
| 46 | +in the pipeline. |
0 commit comments