diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 7707241..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,109 +0,0 @@ -pipeline { - agent any - environment { - SOURCE = "tomsquest/docker-radicale" - TARGET = "parrazam/radicale-with-infcloud" - MASTER_BRANCH = "master" - RELEASE_BRANCH = "release/*" - VERSION = '' - } - options { - skipStagesAfterUnstable() - } - stages { - stage('Configure pipeline for branch type') { - steps { - script { - if (env.BRANCH_NAME.startsWith('release/')) { - VERSION = (env.BRANCH_NAME).tokenize('/')[1] - } else if (env.BRANCH_NAME.equals('master')) { - VERSION = '' - } else { - VERSION = '-SNAPSHOT' - } - } - } - } - stage('Delete older images') { - steps { - echo "Removing existing images in local..." - sh "docker images | grep ${TARGET} | tr -s ' ' | cut -d ' ' -f 2 | xargs -I {} docker rmi ${TARGET}:{}" - } - } - stage("Build image") { - matrix { - axes { - axis { - name 'PLATFORM' - values 'linux/amd64', 'linux/arm64', 'linux/arm' - } - } - stages { - stage('Build by platform') { - options { - lock( 'synchronous-matrix' ) - } - steps { - echo "Building for ${PLATFORM}" - script { - stage("Build ${PLATFORM}") { - script { - SOURCE_IMAGE = SOURCE - TARGET_IMAGE = TARGET+':'+PLATFORM.tokenize('/')[1] - if (env.BRANCH_NAME.startsWith('release/')) { - SOURCE_IMAGE += ":" + VERSION - TARGET_IMAGE += "." + VERSION - } else { - TARGET_IMAGE += VERSION - } - } - echo "Building ${TARGET_IMAGE} image..." - sh "docker pull ${SOURCE_IMAGE}" - sh "docker buildx build -t ${TARGET_IMAGE} --platform ${PLATFORM} --build-arg VERSION=${PLATFORM.tokenize('/')[1]} ." - } - } - } - } - } - } - } - stage('Publish images to Docker Hub') { - 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}" - withCredentials([usernamePassword(credentialsId: 'dockerHub', passwordVariable: 'dockerHubPassword', usernameVariable: 'dockerHubUser')]) { - sh "echo ${env.dockerHubPassword} | docker login -u ${env.dockerHubUser} --password-stdin" - sh "docker manifest create ${TARGET}:${GROUPED_VERSION} ${IMAGES}" - sh "docker manifest push ${TARGET}:${GROUPED_VERSION}" - } - } - } - } - - post { - always { - echo "Removing existing images in local..." - sh "docker images | grep ${TARGET} | tr -s ' ' | cut -d ' ' -f 2 | xargs -I {} docker rmi ${TARGET}:{}" - } - } -}