File: //opt/cpanel/ea-ruby27/src/passenger-release-6.0.27/dev/ci/tests/rpm/Jenkinsfile
def setupTest(enablerFlag, distribution, rpmArch, dockerArch, block) {
if (enablerFlag) {
node("linux && ${rpmArch}") {
withEnv([
"CACHE_DIR=${env.JENKINS_HOME}/cache/${env.JOB_NAME}/${distribution}-${rpmArch}",
"DISTRIBUTION=${distribution}",
"RPM_ARCH=${rpmArch}",
"DOCKER_ARCH=${dockerArch}"
], block)
}
} else {
echo 'Test skipped.'
}
}
pipeline {
agent { node { label 'master-pipeline' } }
options {
buildDiscarder(logRotator(numToKeepStr: '10'))
timeout(time: 45, unit: 'MINUTES')
disableConcurrentBuilds()
timestamps()
}
parameters {
booleanParam(name: 'EL8', defaultValue: true, description: 'RHEL 8 tests')
booleanParam(name: 'EL9', defaultValue: true, description: 'RHEL 9 tests')
}
stages {
stage('Initialize') {
steps {
script {
if (env.JOB_NAME.indexOf('Enterprise') != -1) {
env.ENTERPRISE = '1'
} else {
env.ENTERPRISE = '0'
}
// For debugging purposes
sh 'env | sort'
}
}
}
stage('Test') {
steps {
script {
parallel(
'el8 x86_64': {
setupTest(params.EL8, 'el8', 'x86_64', 'amd64') {
checkout scm
sh './dev/ci/tests/rpm/run'
}
},
'el9 x86_64': {
setupTest(params.EL9, 'el9', 'x86_64', 'amd64') {
checkout scm
sh './dev/ci/tests/rpm/run'
}
},
'el8 aarch64': {
setupTest(params.EL8, 'el8', 'aarch64', 'arm64') {
checkout scm
sh './dev/ci/tests/rpm/run'
}
},
'el9 aarch64': {
setupTest(params.EL9, 'el9', 'aarch64', 'arm64') {
checkout scm
sh './dev/ci/tests/rpm/run'
}
}
)
}
}
}
}
}