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
45
jenkins/Jenkinsfile
vendored
45
jenkins/Jenkinsfile
vendored
|
@ -26,23 +26,41 @@ pipeline {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Prepare buildx') {
|
stage('Prepare container build') {
|
||||||
steps {
|
steps {
|
||||||
sh """
|
sh """
|
||||||
docker buildx create --name $BUILDER_NAME
|
docker buildx create --name $BUILDER_NAME
|
||||||
docker buildx use $BUILDER_NAME
|
docker buildx use $BUILDER_NAME
|
||||||
docker buildx inspect --bootstrap
|
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 'dockerfile'
|
||||||
unstash 'ecodash_x86'
|
unstash 'ecodash_x86'
|
||||||
unstash 'ecodash_arm'
|
unstash 'ecodash_arm'
|
||||||
unstash 'templates'
|
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 {
|
post {
|
||||||
|
|
Loading…
Reference in a new issue