2022-01-24 15:28:02 +01:00
|
|
|
pipeline {
|
|
|
|
agent {
|
|
|
|
label 'Slave'
|
|
|
|
}
|
|
|
|
|
|
|
|
stages {
|
|
|
|
stage('CleanWorkspace') {
|
|
|
|
steps {
|
|
|
|
cleanWs()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Checkout') {
|
|
|
|
steps {
|
|
|
|
checkout([
|
|
|
|
$class : 'GitSCM',
|
|
|
|
branches : [[name: "${DBZ_GIT_BRANCH}"]],
|
|
|
|
userRemoteConfigs: [[url: "${DBZ_GIT_REPOSITORY}"]],
|
|
|
|
extensions : [[$class : 'RelativeTargetDirectory',
|
|
|
|
relativeTargetDir: 'debezium']],
|
|
|
|
])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Checkout - Debezium DB2') {
|
|
|
|
steps {
|
|
|
|
checkout([
|
|
|
|
$class : 'GitSCM',
|
|
|
|
branches : [[name: "${DBZ_GIT_BRANCH_DB2}"]],
|
|
|
|
userRemoteConfigs: [[url: "${DBZ_GIT_REPOSITORY_DB2}"]],
|
|
|
|
extensions : [[$class : 'RelativeTargetDirectory',
|
|
|
|
relativeTargetDir: 'debezium-connector-db2']],
|
|
|
|
])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Configure') {
|
|
|
|
steps {
|
|
|
|
script {
|
|
|
|
// Configure images if provided
|
2022-10-18 14:53:03 +02:00
|
|
|
env.IMAGE_TAG_SUFFIX = "${BUILD_NUMBER}"
|
2022-01-24 15:28:02 +01:00
|
|
|
|
|
|
|
// Apicurio version
|
2022-10-18 14:53:03 +02:00
|
|
|
env.APICURIO_ARTIFACT_VERSION = "${APICURIO_VERSION}"
|
2022-01-24 15:28:02 +01:00
|
|
|
}
|
|
|
|
withCredentials([
|
|
|
|
usernamePassword(credentialsId: "${QUAY_CREDENTIALS}", usernameVariable: 'QUAY_USERNAME', passwordVariable: 'QUAY_PASSWORD'),
|
|
|
|
|
|
|
|
]) {
|
|
|
|
sh '''
|
|
|
|
set -x
|
2022-06-09 11:34:48 +02:00
|
|
|
cd ${WORKSPACE}/debezium
|
2022-06-07 15:38:00 +02:00
|
|
|
ORACLE_ARTIFACT_VERSION=$( mvn -q -DforceStdout help:evaluate -Dexpression=version.oracle.driver)
|
2022-06-01 20:40:23 +02:00
|
|
|
ORACLE_ARTIFACT_DIR="${HOME}/oracle-libs/${ORACLE_ARTIFACT_VERSION}.0"
|
2022-10-18 14:53:03 +02:00
|
|
|
|
2022-06-01 15:00:11 +02:00
|
|
|
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get \\
|
|
|
|
-Dartifact=io.apicurio:apicurio-registry-distro-connect-converter:${APICURIO_ARTIFACT_VERSION}:zip \\
|
|
|
|
-Dmaven.repo.local=${WORKSPACE}/debezium/local-maven-repo
|
2022-01-24 15:28:02 +01:00
|
|
|
cd ${ORACLE_ARTIFACT_DIR}
|
2022-06-01 15:00:11 +02:00
|
|
|
mvn install:install-file -DgroupId=com.oracle.instantclient -DartifactId=ojdbc8 \\
|
|
|
|
-Dversion=${ORACLE_ARTIFACT_VERSION} -Dpackaging=jar -Dfile=ojdbc8.jar \\
|
|
|
|
-Dmaven.repo.local=${WORKSPACE}/debezium/local-maven-repo
|
|
|
|
mvn install:install-file -DgroupId=com.oracle.instantclient -DartifactId=xstreams \\
|
|
|
|
-Dversion=${ORACLE_ARTIFACT_VERSION} -Dpackaging=jar -Dfile=xstreams.jar \\
|
|
|
|
-Dmaven.repo.local=${WORKSPACE}/debezium/local-maven-repo
|
2022-01-24 15:28:02 +01:00
|
|
|
'''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Build debezium') {
|
|
|
|
steps {
|
|
|
|
// Build core & parent
|
|
|
|
sh '''
|
|
|
|
set -x
|
|
|
|
cd "${WORKSPACE}/debezium"
|
2022-06-01 15:00:11 +02:00
|
|
|
mvn clean install -DskipTests -DskipITs -Dmaven.repo.local=local-maven-repo
|
2022-01-24 15:28:02 +01:00
|
|
|
'''
|
|
|
|
// Build Oracle connector
|
|
|
|
sh '''
|
|
|
|
set -x
|
|
|
|
cd ${WORKSPACE}/debezium
|
2022-06-30 23:30:11 +02:00
|
|
|
mvn install -Passembly,oracle-all -DskipTests -DskipITs -Dmaven.repo.local=local-maven-repo
|
2022-01-24 15:28:02 +01:00
|
|
|
'''
|
|
|
|
// Build DB2 Connector
|
|
|
|
sh '''
|
|
|
|
set -x
|
|
|
|
cd ${WORKSPACE}/debezium-connector-db2
|
2022-06-01 15:00:11 +02:00
|
|
|
mvn clean install -DskipTests -DskipITs -Passembly -Dmaven.repo.local=${WORKSPACE}/debezium/local-maven-repo
|
2022-01-24 15:28:02 +01:00
|
|
|
'''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-03-01 14:43:44 +01:00
|
|
|
stage('Login to private Quay repository'){
|
|
|
|
when(){
|
|
|
|
expression { params.ORACLE_INCLUDED }
|
|
|
|
}
|
|
|
|
steps {
|
|
|
|
withCredentials([
|
|
|
|
usernamePassword(credentialsId: "${PRIVATE_QUAY_CREDENTIALS}", usernameVariable: 'PRIVATE_QUAY_USERNAME', passwordVariable: 'PRIVATE_QUAY_PASSWORD'),
|
|
|
|
]){
|
|
|
|
sh '''
|
|
|
|
set -x
|
|
|
|
docker login -u ${PRIVATE_QUAY_USERNAME} -p ${PRIVATE_QUAY_PASSWORD} quay.io
|
|
|
|
'''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-01-24 15:28:02 +01:00
|
|
|
stage('Build and push image') {
|
|
|
|
steps {
|
|
|
|
withCredentials([
|
|
|
|
usernamePassword(credentialsId: "${QUAY_CREDENTIALS}", usernameVariable: 'QUAY_USERNAME', passwordVariable: 'QUAY_PASSWORD'),
|
|
|
|
]) {
|
|
|
|
sh '''
|
|
|
|
set -x
|
|
|
|
cd "${WORKSPACE}/debezium"
|
|
|
|
./jenkins-jobs/scripts/upstream-artifact-server-prepare.sh \\
|
|
|
|
--dir="${WORKSPACE}" \\
|
|
|
|
--tags="${EXTRA_IMAGE_TAGS}" \\
|
|
|
|
--auto-tag="${AUTO_TAG}" \\
|
|
|
|
--registry="quay.io" --organisation="${QUAY_ORGANISATION}" \\
|
|
|
|
--dest-login="${QUAY_USERNAME}" \\
|
|
|
|
--dest-pass="${QUAY_PASSWORD}" \\
|
2022-03-01 14:43:44 +01:00
|
|
|
--img-output="${WORKSPACE}/published_image_dbz.txt" \\
|
2022-06-01 15:00:11 +02:00
|
|
|
--oracle-included="${ORACLE_INCLUDED}" \\
|
|
|
|
--maven-repo=${WORKSPACE}/debezium/local-maven-repo
|
2022-01-24 15:28:02 +01:00
|
|
|
'''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
post {
|
|
|
|
always {
|
2022-10-18 14:53:03 +02:00
|
|
|
mail to: params.MAIL_TO, subject: "Debezium upstream artifact server preparation #${env.BUILD_NUMBER} finished", body: """
|
|
|
|
${currentBuild.projectName} run ${env.BUILD_URL} finished with result: ${currentBuild.currentResult}
|
2022-01-24 15:28:02 +01:00
|
|
|
"""
|
|
|
|
}
|
|
|
|
success {
|
|
|
|
archiveArtifacts "**/published_image*.txt"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|