distro/rhel84: add centos 8 stream support

The image definition is shared with the latest RHEL 8.y one (8.4 currently).
I expect that we the introduction of 8.5 support, we point the centos 8
distro at it.

The test repositories and manifests use the official CentOS composes. From
what I can tell, they are persistent. This is not guaranteed though, so we
might need to switch to RPMRepo at some point.

The "classic" CentOS 8 should also be buildable but due to the chicken and egg
issue (this commit will get into Centos "8.4" but Centos "8.4" isn't a thing
yet), we cannot test it and therefore it might be broken.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
This commit is contained in:
Ondřej Budai 2021-02-12 12:38:59 +01:00 committed by Tom Gundersen
parent 6feba70758
commit 5eb402415d
26 changed files with 76009 additions and 114 deletions

86
schutzbot/Jenkinsfile vendored
View file

@ -118,6 +118,19 @@ pipeline {
}
}
}
stage('CS8') {
agent { label "cs8cloudbase && x86_64 && aws" }
environment {
AWS_CREDS = credentials('aws-credentials-osbuildci')
AWS_IMAGE_TEST_CREDS = credentials('aws-credentials-osbuild-image-test')
}
steps {
sh "schutzbot/ci_details.sh"
retry(3) {
sh "schutzbot/mockbuild.sh"
}
}
}
}
}
@ -588,6 +601,79 @@ pipeline {
}
}
}
stage('CS8 Base') {
when {
expression {
return env.BUILD_CAUSE != 'cron';
}
}
agent { label "cs8cloudbase && x86_64 && aws" }
environment {
TEST_TYPE = "base"
}
steps {
run_tests('base')
}
post {
always {
preserve_logs('cs8-base')
}
}
}
stage('CS8 Image') {
when {
expression {
return env.BUILD_CAUSE != 'cron';
}
}
agent { label "cs8cloudbase && psi && x86_64" }
environment {
TEST_TYPE = "image"
AWS_CREDS = credentials('aws-credentials-osbuildci')
AWS_IMAGE_TEST_CREDS = credentials('aws-credentials-osbuild-image-test')
AZURE_CREDS = credentials('azure')
OPENSTACK_CREDS = credentials("psi-openstack-creds")
VCENTER_CREDS = credentials('vmware-vcenter-credentials')
DISTRO_CODE = "centos-stream8"
}
steps {
run_tests('image')
}
post {
always {
preserve_logs('cs8-image')
sh (
label: "Run cloud cleaner just in case something failed",
script: "schutzbot/run_cloud_cleaner.sh"
)
}
}
}
stage('CS8 Integration') {
when {
expression {
return env.BUILD_CAUSE != 'cron';
}
}
agent { label "cs8cloudbase && x86_64 && psi" }
environment {
TEST_TYPE = "integration"
AWS_CREDS = credentials('aws-credentials-osbuildci')
AWS_IMAGE_TEST_CREDS = credentials('aws-credentials-osbuild-image-test')
AWS_API_TEST_SHARE_ACCOUNT = credentials('aws-credentials-share-account')
}
steps {
run_tests('integration')
}
post {
always {
preserve_logs('cs8-integration')
}
}
}
}
}
}

View file

@ -13,6 +13,10 @@ ARCH=$(uname -m)
# Mock configuration file to use for building RPMs.
MOCK_CONFIG="${ID}-${VERSION_ID%.*}-$(uname -m)"
if [[ $ID == centos ]]; then
MOCK_CONFIG="centos-stream-$(uname -m)"
fi
# The commit this script operates on.
COMMIT=$(git rev-parse HEAD)
@ -39,7 +43,7 @@ if curl --silent --fail --head --output /dev/null "${REPO_URL}/repodata/repomd.x
fi
# Mock and s3cmd is only available in EPEL for RHEL.
if [[ $ID == rhel ]] && ! rpm -q epel-release; then
if [[ $ID == rhel || $ID == centos ]] && ! 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