From 02fa81012c665890b6fc8c0a716f543e2602224d Mon Sep 17 00:00:00 2001 From: Anisha Mohanty Date: Wed, 29 Sep 2021 11:10:51 +0530 Subject: [PATCH] DBZ-3907 Publish debezium tool images to dockerhub using Jenkins --- .../deploy_debezium_tool_images.groovy | 28 ++++++++++++++ .../build-debezium-tool-images.groovy | 38 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 jenkins-jobs/job-dsl/deploy_debezium_tool_images.groovy create mode 100644 jenkins-jobs/pipelines/build-debezium-tool-images.groovy diff --git a/jenkins-jobs/job-dsl/deploy_debezium_tool_images.groovy b/jenkins-jobs/job-dsl/deploy_debezium_tool_images.groovy new file mode 100644 index 000000000..5194dbf3d --- /dev/null +++ b/jenkins-jobs/job-dsl/deploy_debezium_tool_images.groovy @@ -0,0 +1,28 @@ +pipelineJob('release-deploy-debezium-tool-images') { + displayName('Debezium Deploy Tool Images') + description('Build and deploy debezium tool images to the registry') + + properties { + githubProjectUrl('https://github.com/debezium/docker-images') + } + + logRotator { + daysToKeep(7) + } + + triggers { + cron('0 0 * * 1') + } + + parameters { + stringParam('IMAGES_REPOSITORY', 'github.com/debezium/docker-images.git', 'Repository with Debezium Dockerfiles') + stringParam('IMAGES_BRANCH', 'master', 'Branch used for images repository') + stringParam('TAG', 'latest', 'Tag used for building images') + } + + definition { + cps { + script(readFileFromWorkspace('jenkins-jobs/pipelines/build-debezium-tool-images.groovy')) + } + } +} diff --git a/jenkins-jobs/pipelines/build-debezium-tool-images.groovy b/jenkins-jobs/pipelines/build-debezium-tool-images.groovy new file mode 100644 index 000000000..9c46351a7 --- /dev/null +++ b/jenkins-jobs/pipelines/build-debezium-tool-images.groovy @@ -0,0 +1,38 @@ +import groovy.json.* +import java.util.* + +IMAGES_DIR = 'images' +GIT_CREDENTIALS_ID = 'debezium-github' +DOCKER_CREDENTIALS_ID = 'debezium-dockerhub' +MAIL_ID = 'jpechane@redhat.com' + +node('Slave') { + try { + stage('Initialize') { + dir('.') { + deleteDir() + } + checkout([$class : 'GitSCM', + branches : [[name: IMAGES_BRANCH]], + doGenerateSubmoduleConfigurations: false, + extensions : [[$class: 'RelativeTargetDirectory', relativeTargetDir: IMAGES_DIR]], + submoduleCfg : [], + userRemoteConfigs : [[url: "https://$IMAGES_REPOSITORY", credentialsId: GIT_CREDENTIALS_ID]] + ] + ) + withCredentials([usernamePassword(credentialsId: DOCKER_CREDENTIALS_ID, passwordVariable: 'DOCKER_PASSWORD', usernameVariable: 'DOCKER_USERNAME')]) { + sh """ + docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD + """ + } + } + stage('master') { + echo "Building debezium tool images" + dir(IMAGES_DIR) { + sh "PUSH_IMAGES=true TAG=$TAG ./build-tool-images.sh" + } + } + } finally { + mail to: ${MAIL_ID}, subject: "${JOB_NAME} run #${BUILD_NUMBER} finished", body: "Run ${BUILD_URL} finished with result: ${currentBuild.currentResult}" + } +}