Skip to content

Commit ddb90eb

Browse files
ci: add RHEL 9.9 and RHEL 10.3 support to bootc test cases
Extend the rhel-9.8/rhel-10.2 case blocks to also cover RHEL 9.9 and RHEL 10.3, following the same Copr-primary / compose-RPM-override pattern, using ${ARCH} instead of a hardcoded x86_64. Assisted-by: Claude (claude-sonnet-5) Signed-off-by: Mario Cattamo <mcattamo@redhat.com>
1 parent bb867b9 commit ddb90eb

7 files changed

Lines changed: 181 additions & 20 deletions

File tree

.github/workflows/greenboot-ci.yaml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,29 @@ jobs:
227227
timeout: 120
228228
secrets: "QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};STAGE_REDHAT_IO_USERNAME=${{ secrets.STAGE_REDHAT_IO_USERNAME }};STAGE_REDHAT_IO_TOKEN=${{ secrets.STAGE_REDHAT_IO_TOKEN }};DOWNLOAD_NODE=${{ secrets.DOWNLOAD_NODE }}"
229229

230+
rhel-9-9-bootc:
231+
needs: check-pull-request
232+
if: ${{ needs.check-pull-request.outputs.allowed_user == 'true' }}
233+
runs-on: ubuntu-latest
234+
permissions:
235+
statuses: write
236+
237+
steps:
238+
- name: Run the tests
239+
uses: sclorg/testing-farm-as-github-action@230555baceb860aa468d216f1822974836b965d1 # v4.3.1
240+
with:
241+
compose: RHEL-9.9.0-Nightly
242+
api_key: ${{ secrets.TF_API_KEY }}
243+
git_url: ${{ needs.check-pull-request.outputs.repo_url }}
244+
git_ref: ${{ needs.check-pull-request.outputs.ref }}
245+
update_pull_request_status: true
246+
pull_request_status_name: rhel-9.9-bootc
247+
tmt_context: "arch=x86_64;distro=rhel-9-9"
248+
tmt_plan_regex: bootc
249+
variables: "ARCH=x86_64;PR_NUMBER=${{ needs.check-pull-request.outputs.pr_number }}"
250+
timeout: 120
251+
secrets: "QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};STAGE_REDHAT_IO_USERNAME=${{ secrets.STAGE_REDHAT_IO_USERNAME }};STAGE_REDHAT_IO_TOKEN=${{ secrets.STAGE_REDHAT_IO_TOKEN }};DOWNLOAD_NODE=${{ secrets.DOWNLOAD_NODE }}"
252+
230253
rhel-10-2-bootc:
231254
needs: check-pull-request
232255
if: ${{ needs.check-pull-request.outputs.allowed_user == 'true' }}
@@ -249,3 +272,26 @@ jobs:
249272
variables: "ARCH=x86_64;PR_NUMBER=${{ needs.check-pull-request.outputs.pr_number }}"
250273
timeout: 120
251274
secrets: "QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};STAGE_REDHAT_IO_USERNAME=${{ secrets.STAGE_REDHAT_IO_USERNAME }};STAGE_REDHAT_IO_TOKEN=${{ secrets.STAGE_REDHAT_IO_TOKEN }};DOWNLOAD_NODE=${{ secrets.DOWNLOAD_NODE }}"
275+
276+
rhel-10-3-bootc:
277+
needs: check-pull-request
278+
if: ${{ needs.check-pull-request.outputs.allowed_user == 'true' }}
279+
runs-on: ubuntu-latest
280+
permissions:
281+
statuses: write
282+
283+
steps:
284+
- name: Run the tests
285+
uses: sclorg/testing-farm-as-github-action@230555baceb860aa468d216f1822974836b965d1 # v4.3.1
286+
with:
287+
compose: RHEL-10.3-Nightly
288+
api_key: ${{ secrets.TF_API_KEY }}
289+
git_url: ${{ needs.check-pull-request.outputs.repo_url }}
290+
git_ref: ${{ needs.check-pull-request.outputs.ref }}
291+
update_pull_request_status: true
292+
pull_request_status_name: rhel-10.3-bootc
293+
tmt_context: "arch=x86_64;distro=rhel-10-3"
294+
tmt_plan_regex: bootc
295+
variables: "ARCH=x86_64;PR_NUMBER=${{ needs.check-pull-request.outputs.pr_number }}"
296+
timeout: 120
297+
secrets: "QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};STAGE_REDHAT_IO_USERNAME=${{ secrets.STAGE_REDHAT_IO_USERNAME }};STAGE_REDHAT_IO_TOKEN=${{ secrets.STAGE_REDHAT_IO_TOKEN }};DOWNLOAD_NODE=${{ secrets.DOWNLOAD_NODE }}"

tests/files/rhel-10-2.repo

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
[RHEL-10.2-NIGHTLY-BaseOS]
22
name=baseos
3-
baseurl=http://REPLACE_ME_HERE/rhel-10/nightly/RHEL-10/latest-RHEL-10.2/compose/BaseOS/x86_64/os
3+
baseurl=http://REPLACE_ME_HERE/rhel-10/nightly/RHEL-10/latest-RHEL-10.2/compose/BaseOS/REPLACE_ARCH_HERE/os/
44
enabled=1
55
gpgcheck=0
66
[RHEL-10.2-NIGHTLY-AppStream]
77
name=appstream
8-
baseurl=http://REPLACE_ME_HERE/rhel-10/nightly/RHEL-10/latest-RHEL-10.2/compose/AppStream/x86_64/os/
8+
baseurl=http://REPLACE_ME_HERE/rhel-10/nightly/RHEL-10/latest-RHEL-10.2/compose/AppStream/REPLACE_ARCH_HERE/os/
99
enabled=1
1010
gpgcheck=0

tests/files/rhel-10-3.repo

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[RHEL-10.3-NIGHTLY-BaseOS]
2+
name=baseos
3+
baseurl=http://REPLACE_ME_HERE/rhel-10/nightly/RHEL-10/latest-RHEL-10.3/compose/BaseOS/REPLACE_ARCH_HERE/os/
4+
enabled=1
5+
gpgcheck=0
6+
[RHEL-10.3-NIGHTLY-AppStream]
7+
name=appstream
8+
baseurl=http://REPLACE_ME_HERE/rhel-10/nightly/RHEL-10/latest-RHEL-10.3/compose/AppStream/REPLACE_ARCH_HERE/os/
9+
enabled=1
10+
gpgcheck=0

tests/files/rhel-9-8.repo

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
[RHEL-9.8-NIGHTLY-BaseOS]
22
name=baseos
3-
baseurl=http://REPLACE_ME_HERE/rhel-9/nightly/RHEL-9/latest-RHEL-9.8.0/compose/BaseOS/x86_64/os/
3+
baseurl=http://REPLACE_ME_HERE/rhel-9/nightly/RHEL-9/latest-RHEL-9.8.0/compose/BaseOS/REPLACE_ARCH_HERE/os/
44
enabled=1
55
gpgcheck=0
66
[RHEL-9.8-NIGHTLY-AppStream]
77
name=appstream
8-
baseurl=http://REPLACE_ME_HERE/rhel-9/nightly/RHEL-9/latest-RHEL-9.8.0/compose/AppStream/x86_64/os/
8+
baseurl=http://REPLACE_ME_HERE/rhel-9/nightly/RHEL-9/latest-RHEL-9.8.0/compose/AppStream/REPLACE_ARCH_HERE/os/
99
enabled=1
1010
gpgcheck=0

tests/files/rhel-9-9.repo

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[RHEL-9.9-NIGHTLY-BaseOS]
2+
name=baseos
3+
baseurl=http://REPLACE_ME_HERE/rhel-9/nightly/RHEL-9/latest-RHEL-9.9.0/compose/BaseOS/REPLACE_ARCH_HERE/os/
4+
enabled=1
5+
gpgcheck=0
6+
[RHEL-9.9-NIGHTLY-AppStream]
7+
name=appstream
8+
baseurl=http://REPLACE_ME_HERE/rhel-9/nightly/RHEL-9/latest-RHEL-9.9.0/compose/AppStream/REPLACE_ARCH_HERE/os/
9+
enabled=1
10+
gpgcheck=0

tests/greenboot-bootc-anaconda-iso.sh

Lines changed: 62 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ if [[ -n "${TARGET_DISTRO:-}" ]]; then
2727
fi
2828

2929
# Setup variables
30+
ARCH=$(uname -m)
3031
TEST_UUID=anaconda-$((1 + RANDOM % 1000000))
3132
TEMPDIR=$(mktemp -d)
3233
GUEST_ADDRESS=192.168.100.50
@@ -74,21 +75,55 @@ case "${ID}-${VERSION_ID}" in
7475
BIB_URL="registry.stage.redhat.io/rhel9/bootc-image-builder:9.8"
7576
BOOT_ARGS="uefi"
7677
COPR_CHROOT="centos-stream-9-${ARCH}"
78+
{ set +x; } 2>/dev/null
7779
sed -i "s/REPLACE_ME_HERE/${DOWNLOAD_NODE}/g" files/rhel-9-8.repo
80+
sed -i "s/REPLACE_ARCH_HERE/${ARCH}/g" files/rhel-9-8.repo
7881
if [[ "${USE_COMPOSE_RPMS}" == true ]]; then
79-
GREENBOOT_PACKAGES_URL="https://${DOWNLOAD_NODE}/rhel-9/composes/RHEL-9/${COMPOSE_ID}/compose/AppStream/x86_64/os/Packages/"
82+
GREENBOOT_PACKAGES_URL="https://${DOWNLOAD_NODE}/rhel-9/composes/RHEL-9/${COMPOSE_ID}/compose/AppStream/${ARCH}/os/Packages/"
8083
fi
84+
set -x
85+
;;
86+
"rhel-9.9")
87+
OS_VARIANT="rhel9-unknown"
88+
BASE_IMAGE_URL="registry.stage.redhat.io/rhel9/rhel-bootc:9.9"
89+
BIB_URL="registry.stage.redhat.io/rhel9/bootc-image-builder:9.9"
90+
BOOT_ARGS="uefi"
91+
COPR_CHROOT="centos-stream-9-${ARCH}"
92+
{ set +x; } 2>/dev/null
93+
sed -i "s/REPLACE_ME_HERE/${DOWNLOAD_NODE}/g" files/rhel-9-9.repo
94+
sed -i "s/REPLACE_ARCH_HERE/${ARCH}/g" files/rhel-9-9.repo
95+
if [[ "${USE_COMPOSE_RPMS}" == true ]]; then
96+
GREENBOOT_PACKAGES_URL="https://${DOWNLOAD_NODE}/rhel-9/composes/RHEL-9/${COMPOSE_ID}/compose/AppStream/${ARCH}/os/Packages/"
97+
fi
98+
set -x
8199
;;
82100
"rhel-10.2")
83101
OS_VARIANT="rhel10-unknown"
84102
BASE_IMAGE_URL="registry.stage.redhat.io/rhel10/rhel-bootc:10.2"
85103
BIB_URL="registry.stage.redhat.io/rhel10/bootc-image-builder:10.2"
86104
BOOT_ARGS="uefi"
87105
COPR_CHROOT="centos-stream-10-${ARCH}"
106+
{ set +x; } 2>/dev/null
88107
sed -i "s/REPLACE_ME_HERE/${DOWNLOAD_NODE}/g" files/rhel-10-2.repo
108+
sed -i "s/REPLACE_ARCH_HERE/${ARCH}/g" files/rhel-10-2.repo
89109
if [[ "${USE_COMPOSE_RPMS}" == true ]]; then
90-
GREENBOOT_PACKAGES_URL="https://${DOWNLOAD_NODE}/rhel-10/composes/RHEL-10/${COMPOSE_ID}/compose/AppStream/x86_64/os/Packages/"
110+
GREENBOOT_PACKAGES_URL="https://${DOWNLOAD_NODE}/rhel-10/composes/RHEL-10/${COMPOSE_ID}/compose/AppStream/${ARCH}/os/Packages/"
91111
fi
112+
set -x
113+
;;
114+
"rhel-10.3")
115+
OS_VARIANT="rhel10-unknown"
116+
BASE_IMAGE_URL="registry.stage.redhat.io/rhel10/rhel-bootc:10.3"
117+
BIB_URL="registry.stage.redhat.io/rhel10/bootc-image-builder:10.3"
118+
BOOT_ARGS="uefi"
119+
COPR_CHROOT="centos-stream-10-${ARCH}"
120+
{ set +x; } 2>/dev/null
121+
sed -i "s/REPLACE_ME_HERE/${DOWNLOAD_NODE}/g" files/rhel-10-3.repo
122+
sed -i "s/REPLACE_ARCH_HERE/${ARCH}/g" files/rhel-10-3.repo
123+
if [[ "${USE_COMPOSE_RPMS}" == true ]]; then
124+
GREENBOOT_PACKAGES_URL="https://${DOWNLOAD_NODE}/rhel-10/composes/RHEL-10/${COMPOSE_ID}/compose/AppStream/${ARCH}/os/Packages/"
125+
fi
126+
set -x
92127
;;
93128
*)
94129
echo "unsupported distro: ${ID}-${VERSION_ID}"
@@ -242,6 +277,31 @@ tee Containerfile > /dev/null << EOF
242277
FROM ${BASE_IMAGE_URL}
243278
EOF
244279

280+
# RHEL repo is always needed: Copr path uses it for dnf deps,
281+
# anaconda-iso BIB uses it for depsolve
282+
case "${ID}-${VERSION_ID}" in
283+
"rhel-9.8")
284+
tee -a Containerfile > /dev/null << EOF
285+
COPY files/rhel-9-8.repo /etc/yum.repos.d/rhel-9-8.repo
286+
EOF
287+
;;
288+
"rhel-9.9")
289+
tee -a Containerfile > /dev/null << EOF
290+
COPY files/rhel-9-9.repo /etc/yum.repos.d/rhel-9-9.repo
291+
EOF
292+
;;
293+
"rhel-10.2")
294+
tee -a Containerfile > /dev/null << EOF
295+
COPY files/rhel-10-2.repo /etc/yum.repos.d/rhel-10-2.repo
296+
EOF
297+
;;
298+
"rhel-10.3")
299+
tee -a Containerfile > /dev/null << EOF
300+
COPY files/rhel-10-3.repo /etc/yum.repos.d/rhel-10-3.repo
301+
EOF
302+
;;
303+
esac
304+
245305
if [[ "${USE_COMPOSE_RPMS}" == true && -n "${GREENBOOT_PACKAGES_URL}" ]]; then
246306
tee -a Containerfile > /dev/null << EOF
247307
COPY greenboot-*.rpm /tmp/
@@ -250,18 +310,6 @@ RUN dnf install -y /tmp/greenboot-*.rpm && \
250310
systemctl enable greenboot-healthcheck.service
251311
EOF
252312
else
253-
if [[ "${ID}-${VERSION_ID}" == "rhel-9.8" ]]; then
254-
tee -a Containerfile > /dev/null << EOF
255-
COPY files/rhel-9-8.repo /etc/yum.repos.d/rhel-9-8.repo
256-
EOF
257-
fi
258-
259-
if [[ "${ID}-${VERSION_ID}" == "rhel-10.2" ]]; then
260-
tee -a Containerfile > /dev/null << EOF
261-
COPY files/rhel-10-2.repo /etc/yum.repos.d/rhel-10-2.repo
262-
EOF
263-
fi
264-
265313
tee -a Containerfile > /dev/null << EOF
266314
RUN (dnf install -y 'dnf5-command(copr)' || dnf install -y 'dnf-command(copr)') && \
267315
dnf copr enable -y packit/fedora-iot-greenboot-rs-${PR_NUMBER} ${COPR_CHROOT} && \

tests/greenboot-bootc-qcow2.sh

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ if [[ -n "${TARGET_DISTRO:-}" ]]; then
2727
fi
2828

2929
# Setup variables
30+
ARCH=$(uname -m)
3031
TEST_UUID=qcow2-$((1 + RANDOM % 1000000))
3132
TEMPDIR=$(mktemp -d)
3233
GUEST_ADDRESS=192.168.100.50
@@ -74,21 +75,55 @@ case "${ID}-${VERSION_ID}" in
7475
BIB_URL="registry.stage.redhat.io/rhel9/bootc-image-builder:9.8"
7576
BOOT_ARGS="uefi"
7677
COPR_CHROOT="centos-stream-9-${ARCH}"
78+
{ set +x; } 2>/dev/null
7779
sed -i "s/REPLACE_ME_HERE/${DOWNLOAD_NODE}/g" files/rhel-9-8.repo
80+
sed -i "s/REPLACE_ARCH_HERE/${ARCH}/g" files/rhel-9-8.repo
7881
if [[ "${USE_COMPOSE_RPMS}" == true ]]; then
79-
GREENBOOT_PACKAGES_URL="https://${DOWNLOAD_NODE}/rhel-9/composes/RHEL-9/${COMPOSE_ID}/compose/AppStream/x86_64/os/Packages/"
82+
GREENBOOT_PACKAGES_URL="https://${DOWNLOAD_NODE}/rhel-9/composes/RHEL-9/${COMPOSE_ID}/compose/AppStream/${ARCH}/os/Packages/"
8083
fi
84+
set -x
85+
;;
86+
"rhel-9.9")
87+
OS_VARIANT="rhel9-unknown"
88+
BASE_IMAGE_URL="registry.stage.redhat.io/rhel9/rhel-bootc:9.9"
89+
BIB_URL="registry.stage.redhat.io/rhel9/bootc-image-builder:9.9"
90+
BOOT_ARGS="uefi"
91+
COPR_CHROOT="centos-stream-9-${ARCH}"
92+
{ set +x; } 2>/dev/null
93+
sed -i "s/REPLACE_ME_HERE/${DOWNLOAD_NODE}/g" files/rhel-9-9.repo
94+
sed -i "s/REPLACE_ARCH_HERE/${ARCH}/g" files/rhel-9-9.repo
95+
if [[ "${USE_COMPOSE_RPMS}" == true ]]; then
96+
GREENBOOT_PACKAGES_URL="https://${DOWNLOAD_NODE}/rhel-9/composes/RHEL-9/${COMPOSE_ID}/compose/AppStream/${ARCH}/os/Packages/"
97+
fi
98+
set -x
8199
;;
82100
"rhel-10.2")
83101
OS_VARIANT="rhel10-unknown"
84102
BASE_IMAGE_URL="registry.stage.redhat.io/rhel10/rhel-bootc:10.2"
85103
BIB_URL="registry.stage.redhat.io/rhel10/bootc-image-builder:10.2"
86104
BOOT_ARGS="uefi"
87105
COPR_CHROOT="centos-stream-10-${ARCH}"
106+
{ set +x; } 2>/dev/null
88107
sed -i "s/REPLACE_ME_HERE/${DOWNLOAD_NODE}/g" files/rhel-10-2.repo
108+
sed -i "s/REPLACE_ARCH_HERE/${ARCH}/g" files/rhel-10-2.repo
89109
if [[ "${USE_COMPOSE_RPMS}" == true ]]; then
90-
GREENBOOT_PACKAGES_URL="https://${DOWNLOAD_NODE}/rhel-10/composes/RHEL-10/${COMPOSE_ID}/compose/AppStream/x86_64/os/Packages/"
110+
GREENBOOT_PACKAGES_URL="https://${DOWNLOAD_NODE}/rhel-10/composes/RHEL-10/${COMPOSE_ID}/compose/AppStream/${ARCH}/os/Packages/"
91111
fi
112+
set -x
113+
;;
114+
"rhel-10.3")
115+
OS_VARIANT="rhel10-unknown"
116+
BASE_IMAGE_URL="registry.stage.redhat.io/rhel10/rhel-bootc:10.3"
117+
BIB_URL="registry.stage.redhat.io/rhel10/bootc-image-builder:10.3"
118+
BOOT_ARGS="uefi"
119+
COPR_CHROOT="centos-stream-10-${ARCH}"
120+
{ set +x; } 2>/dev/null
121+
sed -i "s/REPLACE_ME_HERE/${DOWNLOAD_NODE}/g" files/rhel-10-3.repo
122+
sed -i "s/REPLACE_ARCH_HERE/${ARCH}/g" files/rhel-10-3.repo
123+
if [[ "${USE_COMPOSE_RPMS}" == true ]]; then
124+
GREENBOOT_PACKAGES_URL="https://${DOWNLOAD_NODE}/rhel-10/composes/RHEL-10/${COMPOSE_ID}/compose/AppStream/${ARCH}/os/Packages/"
125+
fi
126+
set -x
92127
;;
93128
*)
94129
echo "unsupported distro: ${ID}-${VERSION_ID}"
@@ -256,12 +291,24 @@ COPY files/rhel-9-8.repo /etc/yum.repos.d/rhel-9-8.repo
256291
EOF
257292
fi
258293

294+
if [[ "${ID}-${VERSION_ID}" == "rhel-9.9" ]]; then
295+
tee -a Containerfile > /dev/null << EOF
296+
COPY files/rhel-9-9.repo /etc/yum.repos.d/rhel-9-9.repo
297+
EOF
298+
fi
299+
259300
if [[ "${ID}-${VERSION_ID}" == "rhel-10.2" ]]; then
260301
tee -a Containerfile > /dev/null << EOF
261302
COPY files/rhel-10-2.repo /etc/yum.repos.d/rhel-10-2.repo
262303
EOF
263304
fi
264305

306+
if [[ "${ID}-${VERSION_ID}" == "rhel-10.3" ]]; then
307+
tee -a Containerfile > /dev/null << EOF
308+
COPY files/rhel-10-3.repo /etc/yum.repos.d/rhel-10-3.repo
309+
EOF
310+
fi
311+
265312
tee -a Containerfile > /dev/null << EOF
266313
RUN (dnf install -y 'dnf5-command(copr)' || dnf install -y 'dnf-command(copr)') && \
267314
dnf copr enable -y packit/fedora-iot-greenboot-rs-${PR_NUMBER} ${COPR_CHROOT} && \

0 commit comments

Comments
 (0)