33
44# Setup distro test environment
55#
6- # This function checks the distro, sets up the release version
7- # and image_name variables, and builds the container image.
6+ # This function checks the distro, sets up the release version,
7+ # image_name, and koji_tag variables, and builds the container image.
88#
99# Sets the following global variables:
10- # fedora_release - The Fedora release version (e.g., "43")
10+ # release - The distro release version (e.g., "43" for Fedora, "10" for CentOS )
1111# image_name - The container image name (e.g., "fedora/43:latest")
12+ # koji_tag - The koji tag for querying builds (e.g., "f43" for Fedora, "epel10" for CentOS)
1213#
1314# Usage: setup_distro_environment
1415#
1516setup_distro_environment () {
16- if ! rlIsFedora; then
17- rlDie " Test requires Fedora"
17+ if rlIsFedora; then
18+ release=$( rlGetDistroRelease)
19+ koji_tag=" f${release} "
20+ distro=" fedora-${release} "
21+ # FIXME: Rawhide reports numeric release identifiers (e.g., "45") but versioned
22+ # container targets (fedora/45/*) don't exist yet. Mapping fedora/45 to rawhide
23+ # as a workaround until https://github.com/teemtee/tmt/pull/4775 is merged.
24+ if grep -qi " rawhide" /etc/os-release; then
25+ image_name=" fedora/rawhide:latest"
26+ else
27+ image_name=" fedora/${release} :latest"
28+ fi
29+ elif rlIsCentOS; then
30+ release=$( rlGetDistroRelease)
31+ image_name=" centos/stream${release} /upstream:latest"
32+ koji_tag=" epel${release} "
33+ distro=" centos-stream-${release} "
34+ else
35+ rlDie " Test requires Fedora or CentOS"
1836 fi
19-
20- # TODO: Temporary hardcoded release - should be taken from function input
21- fedora_release=43
22- image_name=" fedora/${fedora_release} :latest"
2337 build_container_image " $image_name "
2438}
2539
26- # Setup CentOS test environment
27- #
28- # Sets the following global variables:
29- # centos_release - The CentOS Stream release version (e.g., "10")
30- # epel_tag - The EPEL koji tag (e.g., "epel10.3" or "epel9")
31- # image_name - The container image name (e.g., "centos/stream10/upstream:latest")
32- #
33- # Usage: setup_centos_environment
34- #
35- setup_centos_environment () {
36- if ! rlIsCentOS; then
37- rlDie " Test requires CentOS"
38- fi
39-
40- centos_release=$( rlGetDistroRelease)
41- image_name=" centos/stream${centos_release} /upstream:latest"
42- build_container_image " $image_name "
43-
44- # For CentOS 10+, packages are tagged under epelX.Y (e.g., epel10.3).
45- # For CentOS 9 and earlier, the plain epelX tag is used (e.g., epel9).
46- epel_tag=$( koji list-tags 2> /dev/null | grep -E " ^epel${centos_release} \.[0-9]+$" | sort -V | tail -1)
47- epel_tag=" ${epel_tag:- epel${centos_release} } "
48- }
49-
50- # Get koji build ID from package name (fetch latest for tag)
40+ # Get koji build ID from package name (fetch latest for tag, with inheritance)
5141#
5242# Usage:
5343# get_koji_build_id "make" "f43"
@@ -66,14 +56,17 @@ setup_centos_environment() {
6656# in the KOJI_BUILD_ID global variable (not printed to stdout) to
6757# avoid capturing rlRun output when using command substitution.
6858#
59+ # The --inherit flag is used to also search parent tags (e.g., epel10.3
60+ # inherits from epel10), ensuring builds inherited from parent tags are found.
61+ #
6962get_koji_build_id () {
7063 local package=" $1 "
7164 local tag=" $2 "
7265 unset KOJI_BUILD_ID # Clear any previous value
7366
74- # Get the latest tagged build for the package
67+ # Get the latest tagged build for the package (including inherited tags)
7568 # Output format: "make-4.4.1-10.fc42 f42 releng"
76- rlRun -s " koji list-tagged --latest $tag $package " 0 " Get the latest $package build"
69+ rlRun -s " koji list-tagged --latest --inherit $tag $package " 0 " Get the latest $package build (with inheritance) "
7770
7871 # The NVR should be the first word in the last line
7972 if [[ ! " $( tail -1 $rlRun_LOG ) " =~ ^([^[:space:]]+) ]]; then
0 commit comments