Updated Jenkinsfile to push images one by one

This commit is contained in:
Parra 2022-02-27 19:49:03 +01:00
parent 1cd639a4d2
commit 3dc12cb983
1 changed files with 14 additions and 45 deletions

59
Jenkinsfile vendored
View File

@ -49,13 +49,10 @@ pipeline {
stage("Build ${PLATFORM}") { stage("Build ${PLATFORM}") {
script { script {
SOURCE_IMAGE = SOURCE SOURCE_IMAGE = SOURCE
TARGET_IMAGE = TARGET
if (env.BRANCH_NAME.startsWith('release/')) { if (env.BRANCH_NAME.startsWith('release/')) {
SOURCE_IMAGE += ":" + VERSION SOURCE_IMAGE += ":" + VERSION
TARGET_IMAGE += ":" + VERSION
} else {
TARGET_IMAGE += ":" + VERSION
} }
TARGET_IMAGE = TARGET + ":" + VERSION
} }
echo "Building ${TARGET_IMAGE} image..." echo "Building ${TARGET_IMAGE} image..."
sh "docker pull ${SOURCE_IMAGE}" sh "docker pull ${SOURCE_IMAGE}"
@ -64,49 +61,21 @@ pipeline {
} }
} }
} }
} stage('Publish images to Docker Hub') {
} when {
} anyOf {
stage('Publish images to Docker Hub') { branch "${MASTER_BRANCH}"
when { branch "${RELEASE_BRANCH}"
anyOf { }
branch "${MASTER_BRANCH}" }
branch "${RELEASE_BRANCH}" steps {
} withCredentials([usernamePassword(credentialsId: 'dockerHub', passwordVariable: 'dockerHubPassword', usernameVariable: 'dockerHubUser')]) {
} sh "echo ${env.dockerHubPassword} | docker login -u ${env.dockerHubUser} --password-stdin"
steps { sh "docker image push --all-tags ${TARGET}"
withCredentials([usernamePassword(credentialsId: 'dockerHub', passwordVariable: 'dockerHubPassword', usernameVariable: 'dockerHubUser')]) { }
sh "echo ${env.dockerHubPassword} | docker login -u ${env.dockerHubUser} --password-stdin" }
sh "docker image push --all-tags ${TARGET}"
}
}
}
stage('Tagging with common version') {
environment {
GROUPED_VERSION = "${VERSION}"
}
when {
anyOf {
branch "${MASTER_BRANCH}"
branch "${RELEASE_BRANCH}"
}
}
steps {
script {
if (VERSION.equals('')) {
GROUPED_VERSION = 'latest'
}
if (env.BRANCH_NAME.startsWith('release/')) {
VERSION = '.' + (env.BRANCH_NAME).tokenize('/')[1]
}
IMAGES = ''
for (ARCH in ['linux/amd64', 'linux/arm64', 'linux/arm']) {
IMAGES += ' -a ' + TARGET + ':' + ARCH.tokenize('/')[1] + VERSION
} }
} }
echo "${IMAGES}"
sh "docker manifest create ${TARGET}:${GROUPED_VERSION} ${IMAGES}"
sh "docker manifest push ${TARGET}:${GROUPED_VERSION}"
} }
} }
} }