Work around docker's BS
Some checks failed
ecodash/pipeline/head There was a failure building this commit
Some checks failed
ecodash/pipeline/head There was a failure building this commit
This commit is contained in:
parent
153b507a69
commit
d5d6aa4d08
43
jenkins/Jenkinsfile
vendored
43
jenkins/Jenkinsfile
vendored
|
@ -26,23 +26,41 @@ 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
|
||||
"""
|
||||
withCredentials([usernamePassword(credentialsId: 'gitea-credentials', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
|
||||
sh 'docker login -u $USERNAME -p $PASSWORD $DOCKER_REGISTRY'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build multi-arch container') {
|
||||
steps {
|
||||
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 {
|
||||
def formattedTag = env.TAG_NAME.replaceFirst(/^v/, '')
|
||||
sh 'docker buildx build --platform linux/amd64,linux/arm64 --push -t $DOCKER_REGISTRY/$SERVICE:$formattedTag .'
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -55,19 +73,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 {
|
||||
|
|
Loading…
Reference in a new issue