ci: rollout several recent changes to CI testing

* Pass in a YAML true value as `__bootc_validation: true` using
the --extra-vars option to ensure that `__bootc_validation` is
treated as a boolean and not a string value.

`-e "__bootc_validation: true"`

You can also use JSON format:

`-e '{"__bootc_validation": true}'`

but YAML is simpler in this case.

* Use tox-lsr version 3.11.1

* Ensure the citest bad comment works when the test was cancelled in
addition to the failure case.

* Update contributing.md documentation

* Update number of nodes to use in testing farm, if needed

* remove unnecessary ansible-lint skips

Signed-off-by: Rich Megginson <rmeggins@redhat.com>
This commit is contained in:
Rich Megginson
2025-09-05 16:19:19 -06:00
committed by Richard Megginson
parent d00ac1835b
commit b7d6ec5ba3
15 changed files with 70 additions and 22 deletions
+2 -2
View File
@@ -27,12 +27,12 @@ jobs:
sudo apt install -y git sudo apt install -y git
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Install tox, tox-lsr - name: Install tox, tox-lsr
run: | run: |
set -euxo pipefail set -euxo pipefail
pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.11.0" pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.11.1"
- name: Convert role to collection format - name: Convert role to collection format
id: collection id: collection
@@ -25,12 +25,12 @@ jobs:
sudo apt install -y git sudo apt install -y git
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Install tox, tox-lsr - name: Install tox, tox-lsr
run: | run: |
set -euxo pipefail set -euxo pipefail
pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.11.0" pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.11.1"
- name: Run ansible-plugin-scan - name: Run ansible-plugin-scan
run: | run: |
+2 -2
View File
@@ -28,12 +28,12 @@ jobs:
sudo apt install -y git sudo apt install -y git
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Install tox, tox-lsr - name: Install tox, tox-lsr
run: | run: |
set -euxo pipefail set -euxo pipefail
pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.11.0" pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.11.1"
- name: Convert role to collection format - name: Convert role to collection format
run: | run: |
+3 -3
View File
@@ -25,7 +25,7 @@ jobs:
sudo apt install -y git sudo apt install -y git
- name: Check out code - name: Check out code
uses: actions/checkout@v4 uses: actions/checkout@v5
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Ensure the docs branch - name: Ensure the docs branch
@@ -48,12 +48,12 @@ jobs:
fi fi
- name: Checkout the docs branch - name: Checkout the docs branch
uses: actions/checkout@v4 uses: actions/checkout@v5
with: with:
ref: docs ref: docs
- name: Fetch README.md and .pandoc_template.html5 template from the workflow branch - name: Fetch README.md and .pandoc_template.html5 template from the workflow branch
uses: actions/checkout@v4 uses: actions/checkout@v5
with: with:
sparse-checkout: | sparse-checkout: |
README.md README.md
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
sudo apt install -y git sudo apt install -y git
- name: checkout PR - name: checkout PR
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Get tag and message from the latest CHANGELOG.md commit - name: Get tag and message from the latest CHANGELOG.md commit
id: tag id: tag
+1 -1
View File
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Codespell - name: Codespell
uses: codespell-project/actions-codespell@v2 uses: codespell-project/actions-codespell@v2
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
sudo apt install -y git sudo apt install -y git
- name: Check out code - name: Check out code
uses: actions/checkout@v4 uses: actions/checkout@v5
# CHANGELOG.md is generated automatically from PR titles and descriptions # CHANGELOG.md is generated automatically from PR titles and descriptions
# It might have issues but they are not critical # It might have issues but they are not critical
+1 -1
View File
@@ -18,7 +18,7 @@ jobs:
commit-checks: commit-checks:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
with: with:
fetch-depth: 0 fetch-depth: 0
@@ -47,7 +47,7 @@ jobs:
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Check if platform is supported - name: Check if platform is supported
id: check_platform id: check_platform
@@ -105,7 +105,7 @@ jobs:
python3 -m pip install --upgrade pip python3 -m pip install --upgrade pip
sudo apt update sudo apt update
sudo apt install -y --no-install-recommends git ansible-core genisoimage qemu-system-x86 sudo apt install -y --no-install-recommends git ansible-core genisoimage qemu-system-x86
pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.11.0" pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.11.1"
# HACK: Drop this when moving this workflow to 26.04 LTS # HACK: Drop this when moving this workflow to 26.04 LTS
- name: Update podman to 5.x for compatibility with bootc-image-builder's podman 5 - name: Update podman to 5.x for compatibility with bootc-image-builder's podman 5
@@ -199,7 +199,7 @@ jobs:
if tox -e "$env" -- --image-file "$(pwd)/$image_file" \ if tox -e "$env" -- --image-file "$(pwd)/$image_file" \
--log-level debug $TOX_ARGS \ --log-level debug $TOX_ARGS \
--lsr-report-errors-url DEFAULT \ --lsr-report-errors-url DEFAULT \
-e __bootc_validation=true \ -e "__bootc_validation: true" \
-- "$test" >out 2>&1; then -- "$test" >out 2>&1; then
mv out "${test}-PASS.log" mv out "${test}-PASS.log"
else else
+1 -1
View File
@@ -26,7 +26,7 @@ jobs:
sudo apt install -y git sudo apt install -y git
- name: Check out code - name: Check out code
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Remove badges from README.md prior to converting to HTML - name: Remove badges from README.md prior to converting to HTML
run: sed -i '1,8 {/^\[\!.*actions\/workflows/d}' README.md run: sed -i '1,8 {/^\[\!.*actions\/workflows/d}' README.md
+2 -2
View File
@@ -36,7 +36,7 @@ jobs:
GITHUB_CONTEXT: ${{ toJson(github) }} GITHUB_CONTEXT: ${{ toJson(github) }}
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Get head sha of the PR - name: Get head sha of the PR
id: head_sha id: head_sha
@@ -49,7 +49,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout PR - name: Checkout PR
uses: actions/checkout@v4 uses: actions/checkout@v5
with: with:
ref: ${{ steps.head_sha.outputs.head_sha }} ref: ${{ steps.head_sha.outputs.head_sha }}
+2 -1
View File
@@ -33,8 +33,9 @@ jobs:
echo "The workflow $PENDING_RUN is still running, wait for it to finish to re-run" echo "The workflow $PENDING_RUN is still running, wait for it to finish to re-run"
exit 1 exit 1
fi fi
# TF tests can fail or can be cancelled due to TF internal issues
RUN_ID=$(gh api "repos/$REPO/actions/workflows/tft.yml/runs?event=issue_comment" \ RUN_ID=$(gh api "repos/$REPO/actions/workflows/tft.yml/runs?event=issue_comment" \
| jq -r "[.workflow_runs[] | select( .display_title == \"$PR_TITLE\" ) | select( .conclusion == \"failure\" ) | .id][0]") | jq -r "[.workflow_runs[] | select( .display_title == \"$PR_TITLE\" ) | select( .conclusion == \"failure\" or .conclusion == \"cancelled\" ) | .id][0]")
if [ "$RUN_ID" = "null" ]; then if [ "$RUN_ID" = "null" ]; then
echo "Failed workflow not found, exiting" echo "Failed workflow not found, exiting"
exit 1 exit 1
+1 -1
View File
@@ -30,7 +30,7 @@ jobs:
sudo apt install -y git sudo apt install -y git
- name: Checkout latest code - name: Checkout latest code
uses: actions/checkout@v4 uses: actions/checkout@v5
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Create or rebase commit, add dump_packages callback - name: Create or rebase commit, add dump_packages callback
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Run lsr-woke-action - name: Run lsr-woke-action
# Originally, uses: get-woke/woke-action@v0 # Originally, uses: get-woke/woke-action@v0
+47
View File
@@ -19,3 +19,50 @@ are likely to be suitable for new contributors!
**Code** is managed on [Github](https://github.com/linux-system-roles/aide), using **Code** is managed on [Github](https://github.com/linux-system-roles/aide), using
[Pull Requests](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests). [Pull Requests](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests).
## Running CI Tests Locally
### Use tox-lsr with qemu
The latest version of tox-lsr supports qemu testing.
<https://github.com/linux-system-roles/tox-lsr#qemu-testing>
**Steps:**
1. If you are using RHEL or CentOS, enable the EPEL repository for your
platform - <https://docs.fedoraproject.org/en-US/epel/>
2. Use yum or dnf to install `standard-test-roles-inventory-qemu`
* If for some reason dnf/yum do not work, just download the script from
<https://pagure.io/standard-test-roles/raw/master/f/inventory/standard-inventory-qcow2> <!--- wokeignore:rule=master -->
* copy to your `$PATH`, and make sure it is executable
3. Install tox
* Use yum/dnf to install `python3-tox` - if that does not work, then use
`pip install --user tox`, then make sure `~/.local/bin` is in your `$PATH`
4. Install tox-lsr <https://github.com/linux-system-roles/tox-lsr#how-to-get-it>
```bash
pip install --user git+https://github.com/linux-system-roles/tox-lsr@main
```
5. Download the config file to `~/.config/linux-system-roles.json` from
<https://github.com/linux-system-roles/linux-system-roles.github.io/blob/main/download/linux-system-roles.json>
6. Assuming you are in a git clone of a role repo which has a tox.ini file -
you can use e.g.
```bash
tox -e qemu-ansible-core-2.14 -- --image-name centos-9 tests/tests_default.yml
```
There are many command line options and environment variables which can be used
to control the behavior, and you can customize the testenv in tox.ini. See
<https://github.com/linux-system-roles/tox-lsr#qemu-testing>
This method supports RHEL also - will download the latest image for a compose,
and will set up the yum repos to point to internal composes.
See <https://linux-system-roles.github.io/contribute.html> for general
development guidelines.