Compare commits

...

2 Commits

Author SHA1 Message Date
MassiveBox 75423645ff
Work around Jenkins'BS 2023-07-22 15:40:00 +02:00
MassiveBox d5d6aa4d08
Work around docker's BS 2023-07-22 15:37:59 +02:00
1 changed files with 27 additions and 20 deletions

47
jenkins/Jenkinsfile vendored
View File

@ -26,23 +26,43 @@ pipeline {
}
}
stage('Prepare buildx') {
stage('Prepare container build') {
steps {
sh """
docker buildx create --name $BUILDER_NAME
docker buildx use $BUILDER_NAME
docker buildx inspect --bootstrap
cp jenkins/Dockerfile ./Dockerfile
"""
}
}
stage('Build multi-arch container') {
steps {
withCredentials([usernamePassword(credentialsId: 'gitea-credentials', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
sh 'docker login -u $USERNAME -p $PASSWORD $DOCKER_REGISTRY'
}
unstash 'dockerfile'
unstash 'ecodash_x86'
unstash 'ecodash_arm'
unstash 'templates'
sh 'cp jenkins/Dockerfile ./Dockerfile; docker buildx build --platform linux/amd64,linux/arm64 --load -t ecodash .'
}
}
stage('Build and push container on push to master') {
when {
anyOf {
branch 'master'
buildingTag()
}
}
steps {
sh 'docker buildx build --platform linux/amd64,linux/arm64 --push -t $DOCKER_REGISTRY/$SERVICE:latest .'
}
}
stage('Build and push container on tag') {
when { buildingTag() }
steps {
script {
def formattedTag = env.TAG_NAME.replaceFirst(/^v/, '')
sh 'docker buildx build --platform linux/amd64,linux/arm64 --push -t $DOCKER_REGISTRY/$SERVICE:$formattedTag .'
}
}
}
@ -55,19 +75,6 @@ pipeline {
}
}
stage('Publish container on tag latest') {
when { branch 'master' }
steps {
withCredentials([usernamePassword(credentialsId: 'gitea-credentials', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
sh 'docker login -u $USERNAME -p $PASSWORD $DOCKER_REGISTRY'
}
sh """
docker image tag ecodash $DOCKER_REGISTRY/$SERVICE:latest
docker push $DOCKER_REGISTRY/$SERVICE:latest
"""
}
}
}
post {