debian-forge-composer/schutzbot/Jenkinsfile
Major Hayden 63c59b2ca1 CI: Run EC2 tests for all instances
Now that EC2 image testing is working well for Fedora 32, enable it for
all of the distros. Also, make it less special and allow it to run with
the other image tests.

Remove the `ami-boot` test from the list of regular image test cases
since it will be thoroughly tested via an import into AWS.

Signed-off-by: Major Hayden <major@redhat.com>
2020-05-20 12:01:38 -05:00

131 lines
No EOL
4.1 KiB
Groovy

pipeline {
agent none
options {
timestamps()
ansiColor('xterm')
// Cancel the pipeline if it runs for more than three hours.
timeout(
time: 3,
unit: "HOURS"
)
}
stages {
stage("Functional Testing") {
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"
)
}