mockbuild: add rhel 9

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
This commit is contained in:
Ondřej Budai 2021-07-20 14:40:40 +02:00 committed by Alexander Todorov
parent 3ec917062f
commit e1462e261d
6 changed files with 79 additions and 4 deletions

View file

@ -51,6 +51,8 @@ RPM:
- aws/rhel-8.4-aarch64
- aws/rhel-8.5-x86_64
- aws/rhel-8.5-aarch64
- aws/rhel-9.0-beta-nightly-x86_64
- aws/rhel-9.0-beta-nightly-aarch64
INTERNAL_NETWORK: ["true"]
Container:

View file

@ -20,7 +20,7 @@ fi
# Mock configuration file to use for building RPMs.
MOCK_CONFIG="${ID}-${VERSION_ID%.*}-$(uname -m)"
if [[ $ID == centos ]]; then
if [[ $ID == centos && ${VERSION_ID%.*} == 8 ]]; then
MOCK_CONFIG="centos-stream-8-$(uname -m)"
fi
@ -59,13 +59,19 @@ if curl --silent --fail --head --output /dev/null "${REPO_URL}/repodata/repomd.x
exit 0
fi
# TODO: update to install correct version once epel-9 is out
# Mock and s3cmd is only available in EPEL for RHEL.
if [[ $ID == rhel || $ID == centos ]] && ! rpm -q epel-release; then
if [[ $ID == rhel || $ID == centos ]] && [[ ${VERSION_ID%.*} == 8 ]] && ! rpm -q epel-release; then
greenprint "📦 Setting up EPEL repository"
curl -Ls --retry 5 --output /tmp/epel.rpm \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo rpm -Uvh /tmp/epel.rpm
elif [[ $ID == rhel || $ID == centos ]] && [[ ${VERSION_ID%.*} == 9 ]]; then
# we have our own small epel for EL9, let's install it
# install Red Hat certificate, otherwise dnf copr fails
curl -LO --insecure https://hdn.corp.redhat.com/rhel8-csb/RPMS/noarch/redhat-internal-cert-install-0.1-23.el7.csb.noarch.rpm
sudo dnf install -y ./redhat-internal-cert-install-0.1-23.el7.csb.noarch.rpm dnf-plugins-core
sudo dnf copr enable -y copr.devel.redhat.com/osbuild-team/epel-el9 "rhel-9.dev-$ARCH"
fi
# Install requirements for building RPMs in mock.
@ -95,6 +101,10 @@ elif [[ $VERSION_ID == 8.5 ]]; then
cat "$RHEL85_NIGHTLY_REPO" | sudo tee -a /etc/mock/templates/rhel-8.tpl > /dev/null
# We need triple quotes at the end of the template to mark the end of the repo list.
echo '"""' | sudo tee -a /etc/mock/templates/rhel-8.tpl
elif [[ $VERSION_ID == 9.0 ]]; then
greenprint "📋 Inserting RHEL 9 mock template"
sudo cp schutzbot/rhel-9-mock-configs/templates/rhel-9.tpl /etc/mock/templates/
sudo cp schutzbot/rhel-9-mock-configs/*.cfg /etc/mock/
fi
greenprint "🔧 Building source RPM"

View file

@ -0,0 +1,4 @@
include('templates/rhel-9.tpl')
config_opts['target_arch'] = 'aarch64'
config_opts['legal_host_arches'] = ('aarch64',)

View file

@ -0,0 +1,4 @@
include('templates/rhel-9.tpl')
config_opts['target_arch'] = 'x86_64'
config_opts['legal_host_arches'] = ('x86_64',)

View file

@ -0,0 +1,55 @@
# inspired by https://gitlab.com/redhat/centos-stream/ci-cd/zuul/jobs/-/blob/master/playbooks/files/centos-stream9-x86_64.cfg
config_opts['root'] = 'rhel-9-{{ target_arch }}'
config_opts['chroot_setup_cmd'] = 'install tar gcc-c++ redhat-rpm-config redhat-release which xz sed make bzip2 gzip gcc coreutils unzip shadow-utils diffutils cpio bash gawk rpm-build info patch util-linux findutils grep'
config_opts['dist'] = 'el8' # only useful for --resultdir variable subst
config_opts['releasever'] = '8'
config_opts['package_manager'] = 'dnf'
config_opts['extra_chroot_dirs'] = [ '/run/lock', ]
config_opts['bootstrap_image'] = 'registry-proxy.engineering.redhat.com/rh-osbs/ubi9'
config_opts['dnf.conf'] = """
[main]
keepcache=1
debuglevel=2
reposdir=/dev/null
logfile=/var/log/yum.log
retries=20
obsoletes=1
gpgcheck=0
assumeyes=1
syslog_ident=mock
syslog_device=
mdpolicy=group:primary
best=1
protected_packages=
module_platform_id=platform:el9
user_agent={{ user_agent }}
[rhel9-baseos]
name=RHEL 9 BaseOS
baseurl=http://download.eng.bos.redhat.com/rhel-9/nightly/RHEL-9-Beta/latest-RHEL-9/compose/BaseOS/$basearch/os/
enabled=1
gpgcheck=0
[rhel9-appstream]
name=RHEL 9 AppStream
baseurl=http://download.eng.bos.redhat.com/rhel-9/nightly/RHEL-9-Beta/latest-RHEL-9/compose/AppStream/$basearch/os/
enabled=1
gpgcheck=0
[rhel9-crb]
name=RHEL 9 CRB
baseurl=http://download.eng.bos.redhat.com/rhel-9/nightly/RHEL-9-Beta/latest-RHEL-9/compose/CRB/$basearch/os/
enabled=1
gpgcheck=0
[rhel9-buildroot]
name=RHEL 9 Buildroot
baseurl=http://download.eng.bos.redhat.com/rhel-9/nightly/BUILDROOT-9-Beta/latest-BUILDROOT-9/compose/Buildroot/$basearch/os
enabled=1
gpgcheck=0
"""

View file

@ -1 +1 @@
a02b32c733d34f90c2b864a197d687c138c7ad27
2f82efef1029ab3d0ca8161ccfb8212392a2395f