diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7104cdbaf..2ebaec282 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -84,14 +84,15 @@ Prepare-rhel-internal: stage: prepare-rhel-internal extends: .terraform rules: - - if: '$CI_PIPELINE_SOURCE == "schedule" && $NIGHTLY == "true"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/prepare-rhel-internal.sh artifacts: paths: - - rhel-8.json - - rhel8internal.repo - - rhel-8-beta.json + - rhel-${RHEL_MAJOR}.json + - rhel${RHEL_MAJOR}internal.repo + - rhel-${RHEL_MAJOR}-beta.json - COMPOSE_ID parallel: matrix: @@ -99,6 +100,7 @@ Prepare-rhel-internal: # NOTE: 1 runner prepares for all arches b/c subsequent jobs download # artifacts from all previous jobs and the last one wins - aws/rhel-8.6-nightly-x86_64 + - aws/rhel-9.0-nightly-x86_64 INTERNAL_NETWORK: ["true"] Base: @@ -106,7 +108,8 @@ Base: extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-[8-9]\.[0-9]-[^ga][\S]+/ && $NIGHTLY == "true"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/base_tests.sh @@ -139,7 +142,8 @@ Regression: extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-[8-9]\.[0-9]-[^ga][\S]+/ && $NIGHTLY == "true"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/regression.sh @@ -170,7 +174,8 @@ OSTree: extends: .terraform/openstack rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-[8-9]\.[0-9]-[^ga][\S]+/ && $NIGHTLY == "true"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/ostree.sh @@ -239,7 +244,8 @@ Integration: extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-[8-9]\.[0-9]-[^ga][\S]+/ && $NIGHTLY == "true"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/${SCRIPT} @@ -281,7 +287,8 @@ API: extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-[8-9]\.[0-9]-[^ga][\S]+/ && $NIGHTLY == "true"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/api.sh ${TARGET} @@ -312,7 +319,8 @@ libvirt: extends: .terraform/openstack rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-[8-9]\.[0-9]-[^ga][\S]+/ && $NIGHTLY == "true"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/libvirt.sh @@ -364,7 +372,8 @@ Installer: extends: .terraform/openstack rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-[8-9]\.[0-9]-[^ga][\S]+/ && $NIGHTLY == "true"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9\.[0-9]-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8\.[0-9]-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/installers.sh diff --git a/schutzbot/deploy.sh b/schutzbot/deploy.sh index b3546a53f..d9b332668 100755 --- a/schutzbot/deploy.sh +++ b/schutzbot/deploy.sh @@ -107,9 +107,9 @@ if [[ "$PROJECT" != "osbuild-composer" ]]; then fi fi -if [ -f "rhel8internal.repo" ]; then +if [ -f "rhel${VERSION_ID%.*}internal.repo" ]; then greenprint "Preparing repos for internal build testing" - sudo mv rhel8internal.repo /etc/yum.repos.d/ + sudo mv rhel"${VERSION_ID%.*}"internal.repo /etc/yum.repos.d/ # Use osbuild from schutzfile if desired for testing custom osbuild-composer packages # specified by $REPO_URL in ENV and used in prepare-rhel-internal.sh if [ "${SCHUTZ_OSBUILD:=false}" == true ]; then diff --git a/schutzbot/prepare-rhel-internal.sh b/schutzbot/prepare-rhel-internal.sh index 3da6d02d3..7270fe611 100755 --- a/schutzbot/prepare-rhel-internal.sh +++ b/schutzbot/prepare-rhel-internal.sh @@ -17,11 +17,11 @@ fi # Create a repository file for installing the osbuild-composer RPMs greenprint "📜 Generating dnf repository file" -rm -f rhel8internal.repo +rm -f rhel"${VERSION_ID%.*}"internal.repo for ARCH in $ALL_ARCHES; do - tee -a rhel8internal.repo << EOF + tee -a rhel"${VERSION_ID%.*}"internal.repo << EOF -[rhel8-internal-baseos-$ARCH] +[rhel${VERSION_ID}-internal-baseos-${ARCH}] name=RHEL Internal BaseOS baseurl=${COMPOSE_URL}/compose/BaseOS/${ARCH}/os/ enabled=1 @@ -29,7 +29,7 @@ gpgcheck=0 # Default dnf repo priority is 99. Lower number means higher priority. priority=1 -[rhel8-internal-appstream-$ARCH] +[rhel${VERSION_ID}-internal-appstream-${ARCH}] name=RHEL Internal AppStream baseurl=${COMPOSE_URL}/compose/AppStream/${ARCH}/os/ enabled=1 @@ -42,12 +42,12 @@ done # Create an osbuild-composer JSON file for content consumption greenprint "📜 Generate osbuild-composer JSON source file" -tee rhel-8.json << EOF +tee rhel-"${VERSION_ID%.*}".json << EOF { EOF for ARCH in $ALL_ARCHES; do - tee -a rhel-8.json << EOF + tee -a rhel-"${VERSION_ID%.*}".json << EOF "${ARCH}": [ { "name": "baseos-${ARCH}", @@ -63,7 +63,7 @@ EOF # only x86_64 has an RT repository if [ "$ARCH" == "x86_64" ]; then - tee -a rhel-8.json << EOF + tee -a rhel-"${VERSION_ID%.*}".json << EOF ,{ "name": "rt-${ARCH}", "baseurl": "${COMPOSE_URL}/compose/RT/${ARCH}/os", @@ -72,23 +72,23 @@ EOF EOF fi - tee -a rhel-8.json << EOF + tee -a rhel-"${VERSION_ID%.*}".json << EOF ] EOF # append comma for all arches except the last one if [ "$ARCH" != "x86_64" ]; then - tee -a rhel-8.json << EOF + tee -a rhel-"${VERSION_ID%.*}".json << EOF , EOF fi done -tee -a rhel-8.json << EOF +tee -a rhel-"${VERSION_ID%.*}".json << EOF } EOF -cp rhel-8.json rhel-8-beta.json +cp rhel-"${VERSION_ID%.*}".json rhel-"${VERSION_ID%.*}"-beta.json JOB_NAME="${JOB_NAME:-${CI_JOB_ID}}" # Do not create tests repo if it's provided from ENV @@ -114,7 +114,7 @@ if [ -z "${REPO_URL+x}" ]; then # version matches osbuild-composer from the internal tree greenprint "Downloading osbuild-composer-tests RPMs from Brew" for ARCH in $ALL_ARCHES; do - TESTS_RPM_URL=$(rpm -qp ./osbuild-composer-worker-*.rpm --qf "http://download.devel.redhat.com/brewroot/vol/rhel-8/packages/osbuild-composer/%{version}/%{release}/$ARCH/osbuild-composer-tests-%{version}-%{release}.$ARCH.rpm") + TESTS_RPM_URL=$(rpm -qp ./osbuild-composer-worker-*.rpm --qf "http://download.devel.redhat.com/brewroot/vol/rhel-${VERSION_ID%.*}/packages/osbuild-composer/%{version}/%{release}/$ARCH/osbuild-composer-tests-%{version}-%{release}.$ARCH.rpm") wget --directory-prefix "$REPO_DIR_LATEST" "$TESTS_RPM_URL" done @@ -145,7 +145,7 @@ fi # amend repository file. greenprint "📜 Amend dnf repository file" -tee -a rhel8internal.repo << EOF +tee -a rhel"${VERSION_ID%.*}"internal.repo << EOF [osbuild-composer-tests-multi-arch] name=Tests ${JOB_NAME} diff --git a/tools/define-compose-url.sh b/tools/define-compose-url.sh index 580d51238..b75bc8728 100755 --- a/tools/define-compose-url.sh +++ b/tools/define-compose-url.sh @@ -8,16 +8,16 @@ if [[ $ID != rhel ]]; then fi if [[ $ID == rhel && ${VERSION_ID%.*} == 8 ]]; then - COMPOSE_ID=$(curl -L http://download.devel.redhat.com/rhel-8/nightly/RHEL-8/latest-finished-RHEL-8.6/COMPOSE_ID) + COMPOSE_ID=$(curl -L http://download.devel.redhat.com/rhel-8/nightly/RHEL-8/latest-finished-RHEL-"${VERSION_ID}"/COMPOSE_ID) # default to a nightly tree but respect values passed from ENV so we can test rel-eng composes as well COMPOSE_URL="${COMPOSE_URL:-http://download.devel.redhat.com/rhel-8/nightly/RHEL-8/$COMPOSE_ID}" elif [[ $ID == rhel && ${VERSION_ID%.*} == 9 ]]; then - COMPOSE_ID=$(curl -L http://download.devel.redhat.com/rhel-9/nightly/RHEL-9-Beta/latest-RHEL-9.0/COMPOSE_ID) + COMPOSE_ID=$(curl -L http://download.devel.redhat.com/rhel-9/nightly/RHEL-9/latest-RHEL-"${VERSION_ID}"/COMPOSE_ID) # default to a nightly tree but respect values passed from ENV so we can test rel-eng composes as well - COMPOSE_URL="${COMPOSE_URL:-http://download.devel.redhat.com/rhel-9/nightly/RHEL-9-Beta/$COMPOSE_ID}" + COMPOSE_URL="${COMPOSE_URL:-http://download.devel.redhat.com/rhel-9/nightly/RHEL-9/$COMPOSE_ID}" fi # in case COMPOSE_URL was defined from the outside refresh COMPOSE_ID file, diff --git a/tools/provision.sh b/tools/provision.sh index df172eb7a..9da0811a3 100755 --- a/tools/provision.sh +++ b/tools/provision.sh @@ -90,12 +90,12 @@ esac # overrides for RHEL nightly builds testing VERSION_SUFFIX=$(echo "${VERSION_ID}" | tr -d ".") -if [ -f "rhel-8.json" ]; then - sudo cp rhel-8.json "$REPODIR/rhel-${VERSION_SUFFIX}.json" +if [ -f "rhel-${VERSION_ID%.*}.json" ]; then + sudo cp rhel-"${VERSION_ID%.*}".json "$REPODIR/rhel-${VERSION_SUFFIX}.json" fi -if [ -f "rhel-8-beta.json" ]; then - sudo cp rhel-8-beta.json "$REPODIR/rhel-${VERSION_SUFFIX}-beta.json" +if [ -f "rhel-${VERSION_ID%.*}-beta.json" ]; then + sudo cp rhel-"${VERSION_ID%.*}"-beta.json "$REPODIR/rhel-${VERSION_SUFFIX}-beta.json" fi # Generate all X.509 certificates for the tests