diff --git a/test/assets/common_versions.sh.template b/test/assets/common_versions.sh.template index 247e5ca84d..bf4c3cc2b1 100644 --- a/test/assets/common_versions.sh.template +++ b/test/assets/common_versions.sh.template @@ -142,13 +142,24 @@ export CNCF_SYSTEMD_LOGS_VERSION={CNCF_SYSTEMD_LOGS_VERSION} export GITOPS_VERSION={GITOPS_VERSION} # The brew release versions needed for release regression testing -BREW_Y0_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{MINOR_VERSION}}-zstream/{ARCH}/")" -BREW_Y1_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{PREVIOUS_MINOR_VERSION}}-zstream/{ARCH}/")" -BREW_Y2_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{YMINUS2_MINOR_VERSION}}-zstream/{ARCH}/")" -BREW_RC_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{MINOR_VERSION}}-rc/{ARCH}/")" -BREW_EC_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{MINOR_VERSION}}-ec/{ARCH}/")" -BREW_NIGHTLY_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{MINOR_VERSION}}-nightly/{ARCH}/")" +Y0_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{MINOR_VERSION}}\.[0-9]+$" -printf '%f\n' | sort -V | tail -n1 || echo "")" +Z1_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{MINOR_VERSION}}\.[0-9]+$" -printf '%f\n' | sort -V | head -n1 || echo "")" +Y1_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{PREVIOUS_MINOR_VERSION}}\.[0-9]+$" -printf '%f\n' | sort -V | tail -n1 || echo "")" +Y2_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{YMINUS2_MINOR_VERSION}}\.[0-9]+$" -printf '%f\n' | sort -V | tail -n1 || echo "")" +RC_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{MINOR_VERSION}}\.[0-9]*-rc$" -printf '%f\n' | sort -V | tail -n1 || echo "")" +EC_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{MINOR_VERSION}}\.[0-9]*-ec$" -printf '%f\n' | sort -V | tail -n1 || echo "")" +NIGHTLY_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{MINOR_VERSION}}\.[0-9]*-nightly$" -printf '%f\n' | sort -V | tail -n1 || echo "")" + +BREW_Y0_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{Y0_VERSION}}/{ARCH}/")" +BREW_Z1_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{Z1_VERSION}}/{ARCH}/")" +BREW_Y1_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{Y1_VERSION}}/{ARCH}/")" +BREW_Y2_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{Y2_VERSION}}/{ARCH}/")" +BREW_RC_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{RC_VERSION}}/{ARCH}/")" +BREW_EC_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{EC_VERSION}}/{ARCH}/")" +BREW_NIGHTLY_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{NIGHTLY_VERSION}}/{ARCH}/")" + export BREW_Y0_RELEASE_VERSION +export BREW_Z1_RELEASE_VERSION export BREW_Y1_RELEASE_VERSION export BREW_Y2_RELEASE_VERSION export BREW_RC_RELEASE_VERSION diff --git a/test/bin/build_rpms.sh b/test/bin/build_rpms.sh index c4c343ae52..bb2b4dfffe 100755 --- a/test/bin/build_rpms.sh +++ b/test/bin/build_rpms.sh @@ -121,12 +121,10 @@ download_brew_rpms() { rm -rf "${BREW_RPM_SOURCE}" # Run the download procedure bash -x "${SCRIPTDIR}/../../scripts/fetch_tools.sh" brew - bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "zstream" || true - bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${PREVIOUS_MINOR_VERSION}" "${BREW_RPM_SOURCE}" "zstream" || true - bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${YMINUS2_MINOR_VERSION}" "${BREW_RPM_SOURCE}" "zstream" || true - bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "rc" || true - bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "ec" || true - bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "nightly" || true + bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "${LATEST_RELEASE_TYPE}" || echo "WARNING: Failed to download ${LATEST_RELEASE_TYPE} RPMs for 4.${MINOR_VERSION}" + bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "nightly" || echo "WARNING: Failed to download nightly RPMs for 4.${MINOR_VERSION}" + bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${PREVIOUS_MINOR_VERSION}" "${BREW_RPM_SOURCE}" "zstream" || echo "WARNING: Failed to download zstream RPMs for 4.${PREVIOUS_MINOR_VERSION}" + bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${YMINUS2_MINOR_VERSION}" "${BREW_RPM_SOURCE}" "zstream" || ( echo "WARNING: Failed to download zstream RPMs for 4.${YMINUS2_MINOR_VERSION}" && return 1 ) else echo "WARNING: The Brew Hub site is not accessible, skipping the download" fi diff --git a/test/bin/common_versions.sh b/test/bin/common_versions.sh index 0bab675943..4fb7aa50a9 100644 --- a/test/bin/common_versions.sh +++ b/test/bin/common_versions.sh @@ -142,13 +142,24 @@ export CNCF_SYSTEMD_LOGS_VERSION=v0.4 export GITOPS_VERSION=1.16 # The brew release versions needed for release regression testing -BREW_Y0_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${MINOR_VERSION}-zstream/${UNAME_M}/")" -BREW_Y1_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${PREVIOUS_MINOR_VERSION}-zstream/${UNAME_M}/")" -BREW_Y2_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${YMINUS2_MINOR_VERSION}-zstream/${UNAME_M}/")" -BREW_RC_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${MINOR_VERSION}-rc/${UNAME_M}/")" -BREW_EC_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${MINOR_VERSION}-ec/${UNAME_M}/")" -BREW_NIGHTLY_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${MINOR_VERSION}-nightly/${UNAME_M}/")" +Y0_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${MINOR_VERSION}\.[0-9]+$" -printf '%f\n' | sort -V | tail -n1 || echo "")" +Z1_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${MINOR_VERSION}\.[0-9]+$" -printf '%f\n' | sort -V | head -n1 || echo "")" +Y1_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${PREVIOUS_MINOR_VERSION}\.[0-9]+$" -printf '%f\n' | sort -V | tail -n1 || echo "")" +Y2_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${YMINUS2_MINOR_VERSION}\.[0-9]+$" -printf '%f\n' | sort -V | tail -n1 || echo "")" +RC_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${MINOR_VERSION}\.[0-9]*-rc$" -printf '%f\n' | sort -V | tail -n1 || echo "")" +EC_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${MINOR_VERSION}\.[0-9]*-ec$" -printf '%f\n' | sort -V | tail -n1 || echo "")" +NIGHTLY_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${MINOR_VERSION}\.[0-9]*-nightly$" -printf '%f\n' | sort -V | tail -n1 || echo "")" + +BREW_Y0_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${Y0_VERSION}/${UNAME_M}/")" +BREW_Z1_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${Z1_VERSION}/${UNAME_M}/")" +BREW_Y1_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${Y1_VERSION}/${UNAME_M}/")" +BREW_Y2_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${Y2_VERSION}/${UNAME_M}/")" +BREW_RC_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${RC_VERSION}/${UNAME_M}/")" +BREW_EC_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${EC_VERSION}/${UNAME_M}/")" +BREW_NIGHTLY_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${NIGHTLY_VERSION}/${UNAME_M}/")" + export BREW_Y0_RELEASE_VERSION +export BREW_Z1_RELEASE_VERSION export BREW_Y1_RELEASE_VERSION export BREW_Y2_RELEASE_VERSION export BREW_RC_RELEASE_VERSION diff --git a/test/bin/manage_brew_rpms.sh b/test/bin/manage_brew_rpms.sh index dc108a6888..8e342827e8 100755 --- a/test/bin/manage_brew_rpms.sh +++ b/test/bin/manage_brew_rpms.sh @@ -5,9 +5,11 @@ SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Note: Avoid sourcing common.sh or common_version.sh in this script to allow # its execution in a containerized environment with limited set of tools. +UNAME_M="${UNAME_M:-$(uname -m)}" + usage() { echo "Usage: $(basename "$0") [access | download [version_type]]" - echo " download: Download the RPM version to the path as specified" + echo " download: Download the latest RPM packages for the given version, Z-1, Y-2 and Y-1 to the path as specified" echo " - version: the X.Y version. Example: 4.19" echo " - path: the output directory. Example: /_output/test-images/brew-rpms" echo " - version_type: Optional. Valid values: rc, ec, zstream and nightly. Default: nightly" @@ -29,33 +31,81 @@ action_access() { return ${rc} } -action_download() { +find_package() { local -r ver=$1 - local -r dir=$2 - local -r ver_type=${3:-nightly} + local -r ver_type=${2:-nightly} + local -r ver_prev_y=${3:-0} + local -r ver_prev_z=${4:-0} - if [ -z "${ver}" ] || [ -z "${dir}" ] ; then - echo "ERROR: At least two parameters (version and path) are required" - exit 1 + # Validate version format + if ! [[ "${ver}" =~ ^4\.[0-9]+(\.[0-9]+)?$ ]]; then + echo "ERROR: Version '${ver}' does not match required format 4.Y or 4.Y.Z (e.g., 4.20 or 4.20.1)" + return 1 fi - if ! action_access ; then - echo "ERROR: Brew Hub site is not accessible" - exit 1 + # Validate optional numeric parameters + if ! [[ "${ver_prev_y}" =~ ^[0-9]$ ]] || ! [[ "${ver_prev_z}" =~ ^[0-9]$ ]]; then + echo "ERROR: ver_prev_y '${ver_prev_y}' and ver_prev_z '${ver_prev_z}' must be a non-negative integer and less than 10" + return 1 fi - "${SCRIPTDIR}/../../scripts/fetch_tools.sh" brew - # Attempt downloading the specified build version - local package + # Extract version components + ver_x=$(echo "${ver}" | cut -d'.' -f1) + ver_y=$(echo "${ver}" | cut -d'.' -f2) + + # Calculate previous X.Y version + ver_y=$((ver_y - ver_prev_y)) + + local package="" + set +x case ${ver_type} in + zstream) + package_list=$(sudo dnf repoquery --quiet --repo "rhocp-${ver_x}.${ver_y}-for-rhel-9-${UNAME_M}-rpms" 2>/dev/null) || true + package_filtered=$(echo "${package_list}" | grep "microshift-0:" | sed 's/0://' | sed "s/.${UNAME_M}$//" | sort -V | uniq ) || true + if [ -z "${package}" ] ; then + package_list=$(brew list-builds --quiet --package=microshift --state=COMPLETE 2>/dev/null) || true + package_filtered=$(echo "${package_list}" | grep "^microshift-${ver_x}.${ver_y}" | grep -v "~" | sort -V | uniq ) || true + fi + package=$(echo "${package_filtered}" | tail -n$((1 + ver_prev_z)) | head -n1 | awk '{print $1}') || true + ;; nightly) - package=$(brew list-builds --quiet --package=microshift --state=COMPLETE | grep "^microshift-${ver}" | grep "nightly" | uniq | tail -n1) || true + package_list=$(brew list-builds --quiet --package=microshift --state=COMPLETE 2>/dev/null ) || true + package_filtered=$(echo "${package_list}" | grep "^microshift-${ver_x}.${ver_y}" | grep "nightly" | sort -V | uniq ) || true + package=$(echo "${package_filtered}" | tail -n1 | awk '{print $1}') || true + ;; + rc|ec) + package_list=$(brew list-builds --quiet --package=microshift --state=COMPLETE 2>/dev/null ) || true + package_filtered=$(echo "${package_list}" | grep "^microshift-${ver_x}.${ver_y}.0~${ver_type}." | sort -V | uniq ) || true + package=$(echo "${package_filtered}" | tail -n1 | awk '{print $1}') || true ;; + *) + echo "ERROR: Invalid version_type '${ver_type}'. Valid values are: rc, ec, zstream and nightly" + exit 1 + ;; + esac + set -x + echo "${package}" +} + +action_download() { + local -r ver=$1 + local -r main_dir=$2 + local -r ver_type=${3:-nightly} + + local -a package_list=() + + # Find the packages to download + case ${ver_type} in zstream) - package=$(brew list-builds --quiet --package=microshift --state=COMPLETE | grep "^microshift-${ver}" | grep -v "~" | uniq | tail -n1) || true + package_y0="$(find_package "${ver}" "${ver_type}" "0" "0")" + package_z1="$(find_package "${ver}" "${ver_type}" "0" "1")" + package_y1="$(find_package "${ver}" "${ver_type}" "1" "0")" + package_y2="$(find_package "${ver}" "${ver_type}" "2" "0")" + package_list=("${package_y0}" "${package_y1}" "${package_y2}" "${package_z1}") ;; - rc|ec) - package=$(brew list-builds --quiet --package=microshift --state=COMPLETE | grep "^microshift-${ver}.0~${ver_type}." | tail -n1) || true + nightly|rc|ec) + package_latest="$(find_package "${ver}" "${ver_type}")" + package_list=("${package_latest}") ;; *) echo "ERROR: Invalid version_type '${ver_type}'. Valid values are: rc, ec, zstream and nightly" @@ -63,21 +113,79 @@ action_download() { ;; esac + # Check at least one package is found + local all_empty=true + for package in "${package_list[@]}" ; do + if [ -n "${package}" ] ; then + all_empty=false + break + fi + done + if ${all_empty} ; then + echo "ERROR: No packages found for ${ver} ${ver_type}" + return 1 + fi + + # Download the packages + for package in "${package_list[@]}" ; do + if [ -z "${package}" ] ; then + continue + fi + sub_dir=$(echo "${package}" | cut -d'-' -f2) + if ! brew_cli_download "${package}" "${main_dir}" "${sub_dir}" "${ver_type}" ; then + echo "ERROR: Failed to download package: ${package}" + return 1 + fi + done +} + +brew_cli_download() { + local -r package=$1 + local -r main_dir=$2 + local -r sub_dir=$3 + local -r ver_type=$4 + + # Validate parameters if [ -z "${package}" ] ; then - echo "ERROR: Cannot find MicroShift '${ver}' packages in brew" + echo "ERROR: Package is required" exit 1 fi - package=$(awk '{print $1}' <<< "${package}") + if [ -z "${main_dir}" ] ; then + echo "ERROR: Main directory is required" + exit 1 + fi + + if [ -z "${sub_dir}" ] ; then + echo "ERROR: Sub directory is required" + exit 1 + fi + # Check if brew is accessible + if ! action_access ; then + echo "ERROR: Brew Hub site is not accessible" + exit 1 + fi + "${SCRIPTDIR}/../../scripts/fetch_tools.sh" brew + echo "Downloading '${package}' packages from brew" + # Format sub_dir for EC, RC and nightly + if [ "${ver_type}" = "ec" ] || [ "${ver_type}" = "rc" ] || [ "${ver_type}" = "nightly" ] ; then + final_sub_dir=$(echo "${sub_dir}" | sed -E 's/(.*)(~)(.*)(rc|ec|nightly)(.*)/\1-\4/g') + elif [ "${ver_type}" = "zstream" ] ; then + final_sub_dir="${sub_dir}" + fi + # Download all the supported architectures as the required architecture # cannot be identified easily when running in a CI job for arch in x86_64 aarch64 ; do local adir - adir="${dir}/${ver}-${ver_type}/${arch}" + adir="${main_dir}/${final_sub_dir}/${arch}" - mkdir -p "${adir}" + if ! mkdir -p "${adir}" ; then + echo "ERROR: Failed to create directory '${adir}'" + exit 1 + fi pushd "${adir}" &>/dev/null if ! brew download-build --arch="${arch}" --arch="noarch" "${package}" ; then echo "WARNING: Failed to download '${package}' packages using brew download-build command, using curl as a fallback mechanism" diff --git a/test/bin/manage_build_cache.sh b/test/bin/manage_build_cache.sh index edfa245310..dbc2dc5c51 100755 --- a/test/bin/manage_build_cache.sh +++ b/test/bin/manage_build_cache.sh @@ -8,6 +8,7 @@ SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "${SCRIPTDIR}/common.sh" AWS_BUCKET_NAME="${AWS_BUCKET_NAME:-microshift-build-cache}" +AWS_BUCKET_NAME="microshift-build-ushift-6073-cache-us-west-2" BCH_SUBDIR= TAG_SUBDIR= ARCH_SUBDIR="${UNAME_M}" diff --git a/test/image-blueprints-bootc/layer1-base/group2/rhel96-bootc-brew-z1-with-optional.containerfile b/test/image-blueprints-bootc/layer1-base/group2/rhel96-bootc-brew-z1-with-optional.containerfile new file mode 100644 index 0000000000..b4682b4e44 --- /dev/null +++ b/test/image-blueprints-bootc/layer1-base/group2/rhel96-bootc-brew-z1-with-optional.containerfile @@ -0,0 +1,49 @@ +# {{- if env.Getenv "BREW_Z1_RELEASE_VERSION" "" -}} +# Note: This comment makes templating add a new line before the code +FROM localhost/rhel96-test-agent:latest + +# Build arguments +ARG USHIFT_RPM_REPO_NAME=microshift-brew +ARG USHIFT_RPM_REPO_PATH=/tmp/$USHIFT_RPM_REPO_NAME + +# Copy the MicroShift repository contents +COPY ./rpm-repos/$USHIFT_RPM_REPO_NAME $USHIFT_RPM_REPO_PATH + +# Copy repository configuration +COPY ./bootc-images/$USHIFT_RPM_REPO_NAME.repo ./bootc-images/microshift-fast-datapath-rhel9.repo ./bootc-images/microshift-rhocp-y1.repo \ + /etc/yum.repos.d/ + +# Print repository configuration contents. +# Install MicroShift, test agent and cleanup. +RUN dnf repoinfo --enabled && \ + dnf install -y firewalld systemd-resolved \ + {{ range (env.Getenv "MICROSHIFT_MANDATORY_RPMS" | strings.Split " ") -}} + "{{ . }}-{{ env.Getenv "BREW_Z1_RELEASE_VERSION" }}" \ + {{ end -}} + {{ range (env.Getenv "MICROSHIFT_Y1_OPTIONAL_RPMS" | strings.Split " ") -}} + "{{ . }}-{{ env.Getenv "BREW_Z1_RELEASE_VERSION" }}" \ + {{ end -}} + {{ if and (env.Getenv "UNAME_M" "") (eq "x86_64" .Env.UNAME_M) -}} + {{ range (env.Getenv "MICROSHIFT_Y1_X86_64_RPMS" | strings.Split " ") -}} + "{{ . }}-{{ env.Getenv "BREW_Z1_RELEASE_VERSION" }}" \ + {{ end -}} + {{ end -}} + && \ + systemctl enable microshift microshift-test-agent && \ + rm -vf /etc/yum.repos.d/microshift-*.repo && \ + rm -rvf $USHIFT_RPM_REPO_PATH && \ + dnf clean all + +# Configure firewall +RUN firewall-offline-cmd --zone=public --add-port=22/tcp && \ + firewall-offline-cmd --zone=trusted --add-source=10.42.0.0/16 && \ + firewall-offline-cmd --zone=trusted --add-source=169.254.169.1 && \ + firewall-offline-cmd --zone=trusted --add-source=fd01::/48 && \ + firewall-offline-cmd --zone=public --add-port=80/tcp && \ + firewall-offline-cmd --zone=public --add-port=443/tcp && \ + firewall-offline-cmd --zone=public --add-port=5353/udp && \ + firewall-offline-cmd --zone=public --add-port=6443/tcp && \ + firewall-offline-cmd --zone=public --add-port=8889/tcp && \ + firewall-offline-cmd --zone=public --add-port=30000-32767/tcp && \ + firewall-offline-cmd --zone=public --add-port=30000-32767/udp +# {{- end -}} diff --git a/test/scenarios-bootc/releases/el96-z1@el96-lrel@standard1.sh b/test/scenarios-bootc/releases/el96-z1@el96-lrel@standard1.sh new file mode 100644 index 0000000000..3ed9738f95 --- /dev/null +++ b/test/scenarios-bootc/releases/el96-z1@el96-lrel@standard1.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# Sourced from scenario.sh and uses functions defined there. + +# NOTE: Unlike most suites, these tests rely on being run IN ORDER to +# ensure MicroShift is upgraded before running standard suite tests +export TEST_RANDOMIZATION=none + +start_image="rhel96-bootc-brew-z1-with-optional" +dest_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + +scenario_create_vms() { + exit_if_image_not_found "${start_image}" + exit_if_image_not_found "${dest_image}" + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" + launch_vm --boot_blueprint rhel96-bootc +} + +scenario_remove_vms() { + exit_if_image_not_found "${start_image}" + exit_if_image_not_found "${dest_image}" + + remove_vm host1 +} + +scenario_run_tests() { + exit_if_image_not_found "${start_image}" + exit_if_image_not_found "${dest_image}" + + run_tests host1 \ + --variable "TARGET_REF:${dest_image}" \ + --variable "BOOTC_REGISTRY:${MIRROR_REGISTRY_URL}" \ + --variable "EXPECTED_OS_VERSION:9.6" \ + suites/upgrade/upgrade-successful.robot \ + suites/standard1/ suites/selinux/validate-selinux-policy.robot +} diff --git a/test/scenarios-bootc/releases/el96-z1@el96-lrel@standard2.sh b/test/scenarios-bootc/releases/el96-z1@el96-lrel@standard2.sh new file mode 100644 index 0000000000..7fac3bcd52 --- /dev/null +++ b/test/scenarios-bootc/releases/el96-z1@el96-lrel@standard2.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Sourced from scenario.sh and uses functions defined there. + +# NOTE: Unlike most suites, these tests rely on being run IN ORDER to +# ensure MicroShift is upgraded before running standard suite tests +export TEST_RANDOMIZATION=none + +start_image="rhel96-bootc-brew-z1-with-optional" +dest_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + +scenario_create_vms() { + exit_if_image_not_found "${start_image}" + exit_if_image_not_found "${dest_image}" + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" + launch_vm --boot_blueprint rhel96-bootc +} + +scenario_remove_vms() { + exit_if_image_not_found "${start_image}" + exit_if_image_not_found "${dest_image}" + + remove_vm host1 +} + +scenario_run_tests() { + exit_if_image_not_found "${start_image}" + exit_if_image_not_found "${dest_image}" + + run_tests host1 \ + --variable "TARGET_REF:${dest_image}" \ + --variable "BOOTC_REGISTRY:${MIRROR_REGISTRY_URL}" \ + suites/upgrade/upgrade-successful.robot \ + suites/standard2 +}