Skip to content

Commit 30a7c54

Browse files
Merge pull request #656 from bastelfreak/ci
Add blog post about testing staging packages
2 parents 50ce4a6 + afe53e5 commit 30a7c54

4 files changed

Lines changed: 45 additions & 0 deletions

File tree

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
layout: post
3+
title: Enhanced module & openvox-agent testing
4+
date: 2026-04-02
5+
github_username: bastelfreak
6+
---
7+
8+
Ever wanted to make changes to openvox-agent but unsure how to test it? We got you covered!
9+
10+
Since a long time, we have [a workflow in the openvox repo](https://github.com/OpenVoxProject/openvox/actions/workflows/build.yml) to build all packages.
11+
Anyone with write permissions to the repo can trigger the workflow.
12+
The workflow takes a git ref (a branch name) as input and will take that as a source for the packages.
13+
All build artifacts will be published as GitHub artifacts and optionally to our [artifacts server](https://artifacts.voxpupuli.org/openvox-agent/).
14+
It usually takes around 10 minutes between finishing a build and publishing it to our server.
15+
16+
[Due to recent changes in our Vox Pupuli module pipelines](https://github.com/voxpupuli/gha-puppet/pull/95), our module CI can now be triggered manually as well, not just by pull requests.
17+
18+
This is very helpful to rerun the module tests on the HEAD branch of the module.
19+
20+
![CI overview]({{ site.url }}{{ site.baseurl }}/static/images/run-ci.png)
21+
22+
If the module has acceptance tests, there are also a few more options.
23+
24+
![CI options 1]({{ site.url }}{{ site.baseurl }}/static/images/ci-details-1.png)
25+
26+
By default, we generate a CI matrix based on the openvox/puppet major versions in metadata.json multiplied by all supported OS major versions in metadata.json.
27+
This basically allows us to test 5 different collections right now:
28+
29+
* puppet7
30+
* puppet8
31+
* openvox7
32+
* openvox8
33+
* staging
34+
35+
If you set the collection to `staging`, the first and third option in the dropdown become relevant.
36+
In the third option, you can provide a staging package version.
37+
38+
![CI options 2]({{ site.url }}{{ site.baseurl }}/static/images/ci-details-2.png)
39+
40+
41+
Those versions map to the packages built by the [workflow in the openvox repo](https://github.com/OpenVoxProject/openvox/actions/workflows/build.yml).
42+
The first option lists the download server.
43+
It defaults to our own artifacts server, but users can provider their source if they like (for example if you built packages locally).
44+
45+
You can already use this in our [puppet/example](https://github.com/voxpupuli/puppet-example/actions/workflows/ci.yml) repo and with the next modulesync_config release we will make this availablle to all our modules as well.

static/images/ci-details-1.png

126 KB
Loading

static/images/ci-details-2.png

87.4 KB
Loading

static/images/run-ci.png

113 KB
Loading

0 commit comments

Comments
 (0)