forked from rook/rook
77 lines
2.3 KiB
Groovy
77 lines
2.3 KiB
Groovy
// Rook build for Jenkins Pipelines
|
|
|
|
try {
|
|
node("ec2-stateful") {
|
|
|
|
stage('Checkout') {
|
|
checkout scm
|
|
sh 'git submodule sync --recursive'
|
|
sh 'git submodule update --init --recursive'
|
|
}
|
|
|
|
stage('Validation') {
|
|
sh 'external/ceph-submodule-check'
|
|
}
|
|
|
|
withEnv(["DOWNLOADDIR=${env.HOME}/.download", "ALWAYS_BUILD=0", "CHANNEL=${env.BRANCH_NAME}"]) {
|
|
|
|
stage('Build') {
|
|
sh 'build/run make -j\$(nproc) release'
|
|
}
|
|
|
|
stage('Tests') {
|
|
sh 'build/run make -j\$(nproc) check'
|
|
}
|
|
|
|
stage('E2E') {
|
|
def exists = fileExists 'release/version'
|
|
|
|
if (!exists) {
|
|
error('The file release/version does not exist')
|
|
}
|
|
|
|
def rook_tag = readFile (file: 'release/version', encoding : 'utf-8').trim()
|
|
|
|
if (rook_tag == '') {
|
|
error('Failed to get rook_tag from version file')
|
|
}
|
|
|
|
echo 'Rook Tag is ' + rook_tag
|
|
|
|
sh "e2e/scripts/smoke_test.sh ${rook_tag} Kubernetes v1.6"
|
|
|
|
junit 'e2e/results/*.xml'
|
|
}
|
|
|
|
stage('Publish') {
|
|
withCredentials([
|
|
[$class: 'UsernamePasswordMultiBinding', credentialsId: 'rook-quay-io', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASSWORD'],
|
|
[$class: 'UsernamePasswordMultiBinding', credentialsId: 'rook-jenkins-aws', usernameVariable: 'AWS_ACCESS_KEY_ID', passwordVariable: 'AWS_SECRET_ACCESS_KEY'],
|
|
[$class: 'StringBinding', credentialsId: 'quantumbuild-token', variable: 'GITHUB_TOKEN']
|
|
]) {
|
|
sh 'docker login -u="${DOCKER_USER}" -p="${DOCKER_PASSWORD}" quay.io'
|
|
sh 'build/run make -j\$(nproc) publish'
|
|
}
|
|
}
|
|
|
|
stage('Cleanup') {
|
|
sh 'build/run make -j\$(nproc) publish.cleanup'
|
|
sh 'docker images'
|
|
deleteDir()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception e) {
|
|
echo 'Failure encountered'
|
|
|
|
node("ec2-stateful") {
|
|
echo 'Cleaning up workspace'
|
|
sh 'build/run make -j\$(nproc) publish.cleanup'
|
|
sh 'docker images'
|
|
deleteDir()
|
|
}
|
|
|
|
exit 1
|
|
}
|