Now that mock building seems to be stable, let's start building RPMs for RHEL 8.3 so we can onboard it for base/image testing soon. Signed-off-by: Major Hayden <major@redhat.com>
186 lines
No EOL
6.1 KiB
Groovy
186 lines
No EOL
6.1 KiB
Groovy
pipeline {
|
|
agent none
|
|
|
|
environment {
|
|
// We upload build RPMs and repository files here.
|
|
OPENSHIFT_CONTAINER = "osbuildci-artifacts"
|
|
// The files we upload are available under this URL.
|
|
// This is auto-generated from OpenStack.
|
|
MOCK_REPO_BASE_URL = "https://rhos-d.infra.prod.upshift.rdu2.redhat.com:13808/v1/AUTH_95e858620fb34bcc9162d9f52367a560/osbuildci-artifacts"
|
|
}
|
|
|
|
options {
|
|
timestamps()
|
|
ansiColor('xterm')
|
|
// Cancel the pipeline if it runs for more than three hours.
|
|
timeout(
|
|
time: 3,
|
|
unit: "HOURS"
|
|
)
|
|
}
|
|
|
|
stages {
|
|
stage("Mock") {
|
|
// Halt the entire pipeline if a single RPM build fails. That
|
|
// could indicate a code problem that needs to be investigated.
|
|
failFast true
|
|
|
|
parallel {
|
|
stage('Fedora 31') {
|
|
agent { label "fedora31" }
|
|
environment {
|
|
OPENSTACK_CREDS = credentials('psi-openstack-clouds-yaml')
|
|
}
|
|
steps {
|
|
sh "schutzbot/mockbuild.sh"
|
|
}
|
|
}
|
|
stage('Fedora 32') {
|
|
agent { label "fedora32" }
|
|
environment {
|
|
OPENSTACK_CREDS = credentials('psi-openstack-clouds-yaml')
|
|
}
|
|
steps {
|
|
sh "schutzbot/mockbuild.sh"
|
|
}
|
|
}
|
|
stage('RHEL 8.2') {
|
|
agent { label "rhel82" }
|
|
environment {
|
|
OPENSTACK_CREDS = credentials('psi-openstack-clouds-yaml')
|
|
}
|
|
steps {
|
|
sh "schutzbot/mockbuild.sh"
|
|
}
|
|
}
|
|
stage('RHEL 8.3') {
|
|
agent { label "rhel83" }
|
|
environment {
|
|
OPENSTACK_CREDS = credentials('psi-openstack-clouds-yaml')
|
|
}
|
|
steps {
|
|
sh "schutzbot/mockbuild.sh"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage("Functional Testing") {
|
|
// Allow the other stages to finish if a single stage fails.
|
|
failFast false
|
|
|
|
parallel {
|
|
stage('Fedora 31 base') {
|
|
agent { label "fedora31" }
|
|
environment { TEST_TYPE = "base" }
|
|
steps {
|
|
run_tests()
|
|
}
|
|
post {
|
|
always {
|
|
preserve_logs('fedora31-base')
|
|
}
|
|
}
|
|
}
|
|
stage('Fedora 31 image') {
|
|
agent { label "fedora31" }
|
|
environment {
|
|
TEST_TYPE = "image"
|
|
AWS_CREDS = credentials('aws-credentials-osbuildci')
|
|
AWS_REGION = "us-east-2"
|
|
AWS_BUCKET = "imagebuilder-jenkins-testing-use2"
|
|
}
|
|
steps {
|
|
run_tests()
|
|
}
|
|
post {
|
|
always {
|
|
preserve_logs('fedora31-image')
|
|
}
|
|
}
|
|
}
|
|
stage('Fedora 32 base') {
|
|
agent { label "fedora32" }
|
|
environment { TEST_TYPE = "base" }
|
|
steps {
|
|
run_tests()
|
|
}
|
|
post {
|
|
always {
|
|
preserve_logs('fedora32-base')
|
|
}
|
|
}
|
|
}
|
|
stage('Fedora 32 image') {
|
|
agent { label "fedora32" }
|
|
environment {
|
|
TEST_TYPE = "image"
|
|
AWS_CREDS = credentials('aws-credentials-osbuildci')
|
|
AWS_REGION = "us-east-2"
|
|
AWS_BUCKET = "imagebuilder-jenkins-testing-use2"
|
|
}
|
|
steps {
|
|
run_tests()
|
|
}
|
|
post {
|
|
always {
|
|
preserve_logs('fedora32-image')
|
|
}
|
|
}
|
|
}
|
|
stage('RHEL 8.2 base') {
|
|
agent { label "rhel82" }
|
|
environment { TEST_TYPE = "base" }
|
|
steps {
|
|
run_tests()
|
|
}
|
|
post {
|
|
always {
|
|
preserve_logs('rhel82-base')
|
|
}
|
|
}
|
|
}
|
|
stage('RHEL 8.2 image') {
|
|
agent { label "rhel82" }
|
|
environment {
|
|
TEST_TYPE = "image"
|
|
AWS_CREDS = credentials('aws-credentials-osbuildci')
|
|
AWS_REGION = "us-east-2"
|
|
AWS_BUCKET = "imagebuilder-jenkins-testing-use2"
|
|
}
|
|
steps {
|
|
run_tests()
|
|
}
|
|
post {
|
|
always {
|
|
preserve_logs('rhel82-image')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Set up a function to hold the steps needed to run the tests so we don't
|
|
// need to copy/paste the same lines over and over above.
|
|
void run_tests() {
|
|
|
|
// Run the tests from the repository.
|
|
sh "schutzbot/run_tests.sh"
|
|
|
|
}
|
|
|
|
// Move logs to a unique location and tell Jenkins to capture them on success
|
|
// or failure.
|
|
void preserve_logs(test_slug) {
|
|
|
|
// Make a directory for the log files and move the logs there.
|
|
sh "mkdir ${test_slug} && mv *.log ${test_slug}/"
|
|
|
|
// Artifact the logs.
|
|
archiveArtifacts (
|
|
allowEmptyArchive: true,
|
|
artifacts: "${test_slug}/*.log"
|
|
)
|
|
|
|
} |