Skip to content

ci: allow the installation of greenboot rpm packages from compose - #178

Open
mcattamoredhat wants to merge 2 commits into
fedora-iot:mainfrom
mcattamoredhat:rc-compose-tier1-testing
Open

ci: allow the installation of greenboot rpm packages from compose#178
mcattamoredhat wants to merge 2 commits into
fedora-iot:mainfrom
mcattamoredhat:rc-compose-tier1-testing

Conversation

@mcattamoredhat

@mcattamoredhat mcattamoredhat commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

This PR introduces changes to allow installing greenboot RPM packages from a given RHEL compose as an alternative to the default Copr-based install, and extends bootc test coverage to RHEL 9.9 and RHEL 10.3.

ci: allow installing greenboot from compose RPMs as an alternative to Copr

Copr remains the default source for greenboot builds in the qcow2, anaconda-iso, and ostree CI test cases. When both DOWNLOAD_NODE and COMPOSE_ID environment variables are set, these tests instead fetch pre-built greenboot RPMs directly from the RHEL compose available at the DOWNLOAD_NODE URL. This is primarily useful for RHEL targets (9.8, 9.9, 10.2, 10.3), where Copr can only provide a CentOS Stream approximation, and
makes local testing against specific RC or nightly composes simpler and more automated.

The RPM download logic has been extracted into a shared helper (tests/common/download-compose-rpms.sh) to avoid duplication across scripts. The helper fetches the packages index page once and reuses it for both RPM lookups.

ci: add RHEL 9.9 and RHEL 10.3 support to bootc test cases

Extends the bootc qcow2 and anaconda-iso test scripts to support RHEL 9.9 and RHEL 10.3 alongside the existing 9.8 and 10.2 variants. Each new distro gets its own DNF repo file with REPLACE_ME_HERE and REPLACE_ARCH_HERE placeholders substituted at runtime from DOWNLOAD_NODE and the detected architecture, respectively. CI jobs rhel-9-9-bootc and rhel-10-3-bootc are added to greenboot-ci.yaml targeting the corresponding nightly composes.

Note: The ostree test case is not updated yet as RHEL 9.9 support there is not ready.

Local testing (compose RPM mode)

Run each script directly on a host matching the target distro, from inside the tests/ directory.
greenboot-bootc-anaconda-iso.sh

sudo env \
  DOWNLOAD_NODE="download-node.example.com" \
  COMPOSE_ID="RHEL-9.9.0-20260130.0" \
  QUAY_USERNAME="quay-user" \
  QUAY_PASSWORD="quay-password" \
  STAGE_REDHAT_IO_USERNAME="stage-redhat-user" \
  STAGE_REDHAT_IO_TOKEN="stage-redhat-token" \
  ./greenboot-bootc-anaconda-iso.sh

greenboot-bootc-qcow2.sh

sudo env \
  DOWNLOAD_NODE="download-node.example.com" \
  COMPOSE_ID="RHEL-10.3.0-20260130.0" \
  QUAY_USERNAME="quay-user" \
  QUAY_PASSWORD="quay-password" \
  STAGE_REDHAT_IO_USERNAME="stage-redhat-user" \
  STAGE_REDHAT_IO_TOKEN="stage-redhat-token" \
  ./greenboot-bootc-qcow2.sh

greenboot-ostree.sh

sudo env \
  DOWNLOAD_NODE="download-node.example.com" \
  COMPOSE_ID="RHEL-9.9.0-20260130.0" \
  ./greenboot-ostree.sh

Assisted-by: Claude (claude-sonnet-5)

Comment thread tests/greenboot-ostree.sh
Comment thread tests/greenboot-ostree.sh Outdated
Comment thread tests/greenboot-bootc-anaconda-iso.sh Outdated
Comment thread tests/greenboot-bootc-qcow2.sh Outdated
Comment thread tests/greenboot-ostree.sh Outdated

@knecasov knecasov left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a few comments.

Have you considered extracting the shared parts of the code (for example, an RPM download logic) into a common helper, please? The same block is repeated across all three scripts.

Comment thread tests/greenboot-bootc-anaconda-iso.sh Outdated
say-paul
say-paul previously approved these changes Apr 28, 2026

@say-paul say-paul left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment thread tests/greenboot-ostree.sh
@mcattamoredhat

Copy link
Copy Markdown
Contributor Author

I added a few comments.

Have you considered extracting the shared parts of the code (for example, an RPM download logic) into a common helper, please? The same block is repeated across all three scripts.

Done!

say-paul
say-paul previously approved these changes Jun 10, 2026

@say-paul say-paul left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

… Copr

Copr remains the default source for greenboot builds in CI tests. For
RHEL 9.8 and RHEL 10.2 targets, when DOWNLOAD_NODE and COMPOSE_ID are
both set, download pre-built greenboot RPMs from the compose instead.

Assisted-by: Claude (claude-sonnet-5)
Signed-off-by: Mario Cattamo <mcattamo@redhat.com>
@mcattamoredhat
mcattamoredhat marked this pull request as draft July 30, 2026 14:14
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>
@mcattamoredhat
mcattamoredhat force-pushed the rc-compose-tier1-testing branch from 6402f1a to 697d306 Compare July 30, 2026 14:53
@mcattamoredhat
mcattamoredhat marked this pull request as ready for review July 31, 2026 15:01
@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants