ci: upload rpms built in RHEL 8 CDN buildroot into rhel-8-cdn directory
Let's explain how RPMs for RHEL are built: We use a subscribed RHEL 8.x machine and mock build these on it. Mock initializes its own buildroot based on the latest RHEL 8 CDN content, see[1]. This means that the minor version of the buildroot is independent of the minor version of the host. However, we currently upload RPMs to a directory whose name consists also of the minor version of the host. Our hosts are currently running RHEL 8.3 so the RPMs are uploaded into rhel-8.3 directory despite them being built in the RHEL 8.4 buildroot (RHEL 8 CDN buildroot specifically). This means that we cannot guarantee that they are installable on RHEL 8.3 which is weird. This commit adds a special case for hosts that run on subscribed RHEL and thus build RPMs in a buildroot constructed from RHEL CDN. These RPMs are now uploaded into rhel-8-cdn directory. This change more accurately reflects the way we build our RPMs and removes some confusion. Also, we need to bump osbuild commit so we have a version that already has the rhel-8-cdn change in it. This also bumps all deps so we have rhel-8-cdn repos everywhere. [1]: https://github.com/rpm-software-management/mock/blob/main/mock-core-configs/etc/mock/templates/rhel-8.tpl#L37
This commit is contained in:
parent
748e08d434
commit
0ea82ee08c
2 changed files with 26 additions and 6 deletions
|
|
@ -20,8 +20,8 @@ function retry {
|
|||
|
||||
# Variables for where to find osbuild-composer RPMs to test against
|
||||
DNF_REPO_BASEURL=http://osbuild-composer-repos.s3-website.us-east-2.amazonaws.com
|
||||
OSBUILD_COMMIT=3086c7d70c304214e2855cdcf495d4b70f4b04c6 # release 26
|
||||
OSBUILD_COMPOSER_COMMIT=8ca6b1ea157183ff88594ac1b06af1c28d8e0a2c # release 28
|
||||
OSBUILD_COMMIT=35de3093a7b52569512bdc61d2105febbb9b0c7e # release 30
|
||||
OSBUILD_COMPOSER_COMMIT=b5987a5ca51826f29a3bce742d693a55f16f016f # commit newer than release 30 (we need one with rhel-8-cdn)
|
||||
|
||||
# Get OS details.
|
||||
source /etc/os-release
|
||||
|
|
@ -46,11 +46,21 @@ echo -e "fastestmirror=1" | sudo tee -a /etc/dnf/dnf.conf
|
|||
# Add osbuild team ssh keys.
|
||||
cat schutzbot/team_ssh_keys.txt | tee -a ~/.ssh/authorized_keys > /dev/null
|
||||
|
||||
# Distro version in whose buildroot was the RPM built.
|
||||
DISTRO_VERSION=${ID}-${VERSION_ID}
|
||||
|
||||
if [[ "$ID" == rhel ]] && sudo subscription-manager status; then
|
||||
# If this script runs on a subscribed RHEL, the RPMs are actually built
|
||||
# using the latest CDN content, therefore rhel-*-cdn is used as the distro
|
||||
# version.
|
||||
DISTRO_VERSION=rhel-${VERSION_ID%.*}-cdn
|
||||
fi
|
||||
|
||||
# Set up dnf repositories with the RPMs we want to test
|
||||
sudo tee /etc/yum.repos.d/osbuild.repo << EOF
|
||||
[koji-osbuild]
|
||||
name=koji-osbuild ${GIT_COMMIT}
|
||||
baseurl=${DNF_REPO_BASEURL}/koji-osbuild/${ID}-${VERSION_ID}/${ARCH}/${GIT_COMMIT}
|
||||
baseurl=${DNF_REPO_BASEURL}/koji-osbuild/${DISTRO_VERSION}/${ARCH}/${GIT_COMMIT}
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
# Default dnf repo priority is 99. Lower number means higher priority.
|
||||
|
|
@ -58,7 +68,7 @@ priority=5
|
|||
|
||||
[osbuild]
|
||||
name=osbuild ${OSBUILD_COMMIT}
|
||||
baseurl=${DNF_REPO_BASEURL}/osbuild/${ID}-${VERSION_ID}/${ARCH}/${OSBUILD_COMMIT}
|
||||
baseurl=${DNF_REPO_BASEURL}/osbuild/${DISTRO_VERSION}/${ARCH}/${OSBUILD_COMMIT}
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
# Default dnf repo priority is 99. Lower number means higher priority.
|
||||
|
|
@ -66,7 +76,7 @@ priority=5
|
|||
|
||||
[osbuild-composer]
|
||||
name=osbuild-composer ${OSBUILD_COMPOSER_COMMIT}
|
||||
baseurl=${DNF_REPO_BASEURL}/osbuild-composer/${ID}-${VERSION_ID}/${ARCH}/${OSBUILD_COMPOSER_COMMIT}
|
||||
baseurl=${DNF_REPO_BASEURL}/osbuild-composer/${DISTRO_VERSION}/${ARCH}/${OSBUILD_COMPOSER_COMMIT}
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
# Default dnf repo priority is 99. Lower number means higher priority.
|
||||
|
|
|
|||
|
|
@ -29,9 +29,19 @@ REPO_BUCKET=osbuild-composer-repos
|
|||
# Public URL for the S3 bucket with our artifacts.
|
||||
MOCK_REPO_BASE_URL="http://${REPO_BUCKET}.s3-website.us-east-2.amazonaws.com"
|
||||
|
||||
# Distro version in whose buildroot was the RPM built.
|
||||
DISTRO_VERSION=${ID}-${VERSION_ID}
|
||||
|
||||
if [[ "$ID" == rhel ]] && sudo subscription-manager status; then
|
||||
# If this script runs on a subscribed RHEL, the RPMs are actually built
|
||||
# using the latest CDN content, therefore rhel-*-cdn is used as the distro
|
||||
# version.
|
||||
DISTRO_VERSION=rhel-${VERSION_ID%.*}-cdn
|
||||
fi
|
||||
|
||||
# Relative path of the repository – used for constructing both the local and
|
||||
# remote paths below, so that they're consistent.
|
||||
REPO_PATH=koji-osbuild/${ID}-${VERSION_ID}/${ARCH}/${GIT_SHA}
|
||||
REPO_PATH=koji-osbuild/${DISTRO_VERSION}/${ARCH}/${GIT_SHA}
|
||||
|
||||
# Directory to hold the RPMs temporarily before we upload them.
|
||||
REPO_DIR=repo/${REPO_PATH}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue