Skip to content

Commit 2c65732

Browse files
committed
ci: several changes related to new qemu test, ansible-lint, python versions, ubuntu versions
There is a new QEMU based test which uses the qemu/kvm capability of github action runners. This is the basis for new bootc/image mode tests which we will be rolling out in the near future. ansible-lint requires that the collection path is set so that the requirements it installs are installed in the correct place. There has been some general github action deprecation of python versions and ubuntu versions that we have had to fix. Remove `CONTRIBUTOR` from the list of users who can trigger citest. For more information, see * linux-system-roles/.github#98 * linux-system-roles/.github#94 * linux-system-roles/.github#93 * linux-system-roles/.github#92 * linux-system-roles/.github#91 Signed-off-by: Rich Megginson <[email protected]>
1 parent ebae5cd commit 2c65732

File tree

7 files changed

+71
-26
lines changed

7 files changed

+71
-26
lines changed

.github/workflows/ansible-lint.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
- name: Install tox, tox-lsr
3333
run: |
3434
set -euxo pipefail
35-
pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.4.0"
35+
pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.5.1"
3636
3737
- name: Convert role to collection format
3838
id: collection
@@ -80,3 +80,5 @@ jobs:
8080
with:
8181
working_directory: ${{ github.workspace }}/.tox/ansible_collections/${{ env.LSR_ROLE2COLL_NAMESPACE }}/${{ env.LSR_ROLE2COLL_NAME }}
8282
requirements_file: ${{ steps.collection.outputs.coll_req_file }}
83+
env:
84+
ANSIBLE_COLLECTIONS_PATH: ${{ github.workspace }}/.tox

.github/workflows/ansible-managed-var-comment.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- name: Install tox, tox-lsr
3131
run: |
3232
set -euxo pipefail
33-
pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.4.0"
33+
pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.5.1"
3434
3535
- name: Run ansible-plugin-scan
3636
run: |

.github/workflows/ansible-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
- name: Install tox, tox-lsr
3434
run: |
3535
set -euxo pipefail
36-
pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.4.0"
36+
pip3 install "git+https://github.com/linux-system-roles/tox-lsr@3.5.1"
3737
3838
- name: Convert role to collection format
3939
run: |

.github/workflows/qemu-kvm-integration-tests.yml

Lines changed: 63 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,75 +11,118 @@ on: # yamllint disable-line rule:truthy
1111
branches:
1212
- main
1313
workflow_dispatch:
14-
env:
15-
TOX_ENV: qemu-ansible-core-2.16
1614

1715
permissions:
1816
contents: read
1917
jobs:
20-
tox:
18+
qemu_kvm:
2119
runs-on: ubuntu-latest
2220

2321
strategy:
2422
fail-fast: false
2523
matrix:
26-
image:
27-
- centos-9
28-
- centos-10
24+
scenario:
25+
- { image: "centos-9", env: "qemu-ansible-core-2.16" }
26+
- { image: "centos-10", env: "qemu-ansible-core-2.17" }
2927
# ansible/libdnf5 bug: https://issues.redhat.com/browse/RHELMISC-10110
30-
# - fedora-41
31-
- fedora-42
32-
28+
# - { image: "fedora-41", env: "qemu-ansible-core-2.17" }
29+
- { image: "fedora-42", env: "qemu-ansible-core-2.17" }
3330
steps:
31+
- name: Checkout repo
32+
uses: actions/checkout@v4
33+
34+
- name: Check if platform is supported
35+
id: check_platform
36+
run: |
37+
set -euxo pipefail
38+
image="${{ matrix.scenario.image }}"
39+
40+
# convert image to tag formats
41+
platform=
42+
platform_version=
43+
case "$image" in
44+
centos-*) platform=el; platform_version=el"${image#centos-}" ;;
45+
fedora-*) platform=fedora; platform_version="${image/-/}" ;;
46+
esac
47+
supported=
48+
if yq -e '.galaxy_info.galaxy_tags[] | select(. == "'${platform_version}'" or . == "'${platform}'")' meta/main.yml; then
49+
supported=true
50+
fi
51+
52+
echo "supported=$supported" >> "$GITHUB_OUTPUT"
53+
3454
- name: Set up /dev/kvm
55+
if: steps.check_platform.outputs.supported
3556
run: |
3657
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm.rules
3758
sudo udevadm control --reload-rules
3859
sudo udevadm trigger --name-match=kvm --settle
3960
ls -l /dev/kvm
4061
4162
- name: Disable man-db to speed up package install
63+
if: steps.check_platform.outputs.supported
4264
run: |
4365
echo "set man-db/auto-update false" | sudo debconf-communicate
4466
sudo dpkg-reconfigure man-db
4567
4668
- name: Install test dependencies
69+
if: steps.check_platform.outputs.supported
4770
run: |
4871
set -euxo pipefail
4972
python3 -m pip install --upgrade pip
5073
sudo apt update
5174
sudo apt install -y --no-install-recommends git ansible-core genisoimage qemu-system-x86
5275
pip3 install "git+https://github.com/linux-system-roles/[email protected]"
5376
54-
- name: Checkout repo
55-
uses: actions/checkout@v4
56-
5777
- name: Configure tox-lsr
58-
run: |
59-
curl -o ~/.config/linux-system-roles.json https://raw.githubusercontent.com/linux-system-roles/linux-system-roles.github.io/master/download/linux-system-roles.json
78+
if: steps.check_platform.outputs.supported
79+
run: >-
80+
curl -o ~/.config/linux-system-roles.json
81+
https://raw.githubusercontent.com/linux-system-roles/linux-system-roles.github.io/master/download/linux-system-roles.json
6082
61-
- name: Run tox integration tests
62-
run: tox -e ${{ env.TOX_ENV }} -- --image-name ${{ matrix.image }} --make-batch --log-level=debug --
83+
- name: Run qemu/kvm tox integration tests
84+
if: steps.check_platform.outputs.supported
85+
run: >-
86+
tox -e ${{ matrix.scenario.env }} -- --image-name ${{ matrix.scenario.image }} --make-batch
87+
--log-level=debug --skip-tags tests::infiniband --
6388
6489
- name: Test result summary
65-
if: always()
90+
if: steps.check_platform.outputs.supported && always()
6691
run: |
6792
set -euo pipefail
68-
while read code start end f; do
93+
# some platforms may have setup/cleanup playbooks - need to find the
94+
# actual test playbook that starts with tests_
95+
while read code start end test_files; do
96+
for f in $test_files; do
97+
f="$(basename $f)"
98+
if [[ "$f" =~ ^tests_ ]]; then
99+
break
100+
fi
101+
done
69102
if [ "$code" = "0" ]; then
70103
echo -n "PASS: "
71104
else
72105
echo -n "FAIL: "
73106
fi
74-
echo "$(basename $f)"
107+
echo "$f"
75108
done < batch.report
76109
77110
- name: Show test logs on failure
78-
if: failure()
111+
if: steps.check_platform.outputs.supported && failure()
79112
run: |
80113
set -euo pipefail
81114
for f in tests/*.log; do
82115
echo "::group::$(basename $f)"
83116
cat "$f"
84117
echo "::endgroup::"
85118
done
119+
120+
- name: Set commit status as success with a description that platform is skipped
121+
if: ${{ steps.check_platform.outputs.supported == '' }}
122+
uses: myrotvorets/set-commit-status-action@master
123+
with:
124+
sha: ${{ needs.prepare_vars.outputs.head_sha }}
125+
status: success
126+
context: "${{ github.workflow }} / qemu_kvm (${{ matrix.scenario.image }}, ${{ matrix.scenario.env }}) (pull_request)"
127+
description: The role does not support this platform. Skipping.
128+
targetUrl: ""

.github/workflows/tft.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
if: |
2222
github.event.issue.pull_request
2323
&& contains(github.event.comment.body, '[citest]')
24-
&& (contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR", "CONTRIBUTOR"]'), github.event.comment.author_association)
24+
&& (contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
2525
|| contains('systemroller', github.event.comment.user.login))
2626
runs-on: ubuntu-latest
2727
outputs:

.github/workflows/tft_citest_bad.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
if: |
1212
github.event.issue.pull_request
1313
&& contains(fromJson('["[citest_bad]", "[citest-bad]", "[citest bad]"]'), github.event.comment.body)
14-
&& contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR", "CONTRIBUTOR"]'), github.event.comment.author_association)
14+
&& contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
1515
permissions:
1616
actions: write # for re-running failed jobs: https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#re-run-a-job-from-a-workflow-run
1717
runs-on: ubuntu-latest

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,4 +463,4 @@ See README-ostree.md
463463
MIT
464464

465465
Based on [Ansible-sudoers](https://github.com/ahuffman/ansible-sudoers).
466-
[![ansible-lint.yml](https://github.com/linux-system-roles/sudo/actions/workflows/ansible-lint.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/ansible-lint.yml) [![ansible-test.yml](https://github.com/linux-system-roles/sudo/actions/workflows/ansible-test.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/ansible-test.yml) [![codeql.yml](https://github.com/linux-system-roles/sudo/actions/workflows/codeql.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/codeql.yml) [![codespell.yml](https://github.com/linux-system-roles/sudo/actions/workflows/codespell.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/codespell.yml) [![markdownlint.yml](https://github.com/linux-system-roles/sudo/actions/workflows/markdownlint.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/markdownlint.yml) [![python-unit-test.yml](https://github.com/linux-system-roles/sudo/actions/workflows/python-unit-test.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/python-unit-test.yml) [![shellcheck.yml](https://github.com/linux-system-roles/sudo/actions/workflows/shellcheck.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/shellcheck.yml) [![tft.yml](https://github.com/linux-system-roles/sudo/actions/workflows/tft.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/tft.yml) [![tft_citest_bad.yml](https://github.com/linux-system-roles/sudo/actions/workflows/tft_citest_bad.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/tft_citest_bad.yml) [![woke.yml](https://github.com/linux-system-roles/sudo/actions/workflows/woke.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/woke.yml)
466+
[![ansible-lint.yml](https://github.com/linux-system-roles/sudo/actions/workflows/ansible-lint.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/ansible-lint.yml) [![ansible-test.yml](https://github.com/linux-system-roles/sudo/actions/workflows/ansible-test.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/ansible-test.yml) [![codeql.yml](https://github.com/linux-system-roles/sudo/actions/workflows/codeql.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/codeql.yml) [![codespell.yml](https://github.com/linux-system-roles/sudo/actions/workflows/codespell.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/codespell.yml) [![markdownlint.yml](https://github.com/linux-system-roles/sudo/actions/workflows/markdownlint.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/markdownlint.yml) [![python-unit-test.yml](https://github.com/linux-system-roles/sudo/actions/workflows/python-unit-test.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/python-unit-test.yml) [![qemu-kvm-integration-tests.yml](https://github.com/linux-system-roles/sudo/actions/workflows/qemu-kvm-integration-tests.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/qemu-kvm-integration-tests.yml) [![shellcheck.yml](https://github.com/linux-system-roles/sudo/actions/workflows/shellcheck.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/shellcheck.yml) [![tft.yml](https://github.com/linux-system-roles/sudo/actions/workflows/tft.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/tft.yml) [![tft_citest_bad.yml](https://github.com/linux-system-roles/sudo/actions/workflows/tft_citest_bad.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/tft_citest_bad.yml) [![woke.yml](https://github.com/linux-system-roles/sudo/actions/workflows/woke.yml/badge.svg)](https://github.com/linux-system-roles/sudo/actions/workflows/woke.yml)

0 commit comments

Comments
 (0)