Skip to content

Commit 60ce423

Browse files
committed
(gh-29) Add GHA_ACCEPTANCE.md describing acceptance workflow
1 parent 31ebaf7 commit 60ce423

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ The Puppet Agent
77
* License
88
* Code Owners
99
* Running Tests
10+
* Github Actions
1011

1112
Overview
1213
---
@@ -144,3 +145,13 @@ See [CODEOWNERS](CODEOWNERS)
144145
Running Tests
145146
---
146147
See [Acceptance README](acceptance/README.md)
148+
149+
Github Actions
150+
---
151+
152+
PR validation runs a pair of GHA jobs that check commit messages and
153+
run Rubocop (.github/workflows/checks.yml) via the Rakefile.
154+
155+
There is also a manual acceptance GHA pipeline that runs the Beaker
156+
acceptance suite:
157+
See [GHA_ACCEPTANCE](acceptance/GHA_ACCEPTANCE.md)

acceptance/GHA_ACCEPTANCE.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
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

Comments
 (0)