2022-02-03 14:17:12 +01:00
|
|
|
pipeline {
|
|
|
|
agent {
|
|
|
|
label 'Slave'
|
|
|
|
}
|
|
|
|
stages {
|
|
|
|
stage('Start') {
|
|
|
|
parallel {
|
|
|
|
stage('Invoke_db2') {
|
|
|
|
when {
|
|
|
|
expression { params.DB2_TEST }
|
|
|
|
}
|
|
|
|
steps {
|
|
|
|
build job: 'connector-debezium-db2-matrix-test', parameters: [
|
|
|
|
string(name: 'REPOSITORY_DB2', value: params.REPOSITORY_DB2),
|
2022-02-04 13:10:23 +01:00
|
|
|
string(name: 'BRANCH', value: params.BRANCH),
|
2022-02-03 14:17:12 +01:00
|
|
|
string(name: 'SOURCE_URL', value: params.SOURCE_URL),
|
|
|
|
booleanParam(name: 'PRODUCT_BUILD', value: params.PRODUCT_BUILD)
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Invoke_mongodb') {
|
|
|
|
when {
|
|
|
|
expression { params.MONGODB_TEST }
|
|
|
|
}
|
|
|
|
steps {
|
|
|
|
build job: 'connector-debezium-mongodb-matrix-test', parameters: [
|
|
|
|
string(name: 'REPOSITORY_CORE', value: params.REPOSITORY_CORE),
|
2022-02-04 13:10:23 +01:00
|
|
|
string(name: 'BRANCH', value: params.BRANCH),
|
2022-02-03 14:17:12 +01:00
|
|
|
string(name: 'SOURCE_URL', value: params.SOURCE_URL),
|
|
|
|
booleanParam(name: 'PRODUCT_BUILD', value: params.PRODUCT_BUILD)
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Invoke_mysql') {
|
|
|
|
when {
|
|
|
|
expression { params.MYSQL_TEST }
|
|
|
|
}
|
|
|
|
steps {
|
|
|
|
build job: 'connector-debezium-mysql-matrix-test', parameters: [
|
|
|
|
string(name: 'REPOSITORY_CORE', value: params.REPOSITORY_CORE),
|
2022-02-04 13:10:23 +01:00
|
|
|
string(name: 'BRANCH', value: params.BRANCH),
|
2022-02-03 14:17:12 +01:00
|
|
|
string(name: 'SOURCE_URL', value: params.SOURCE_URL),
|
|
|
|
booleanParam(name: 'PRODUCT_BUILD', value: params.PRODUCT_BUILD),
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Invoke_oracle') {
|
|
|
|
when {
|
|
|
|
expression { params.ORACLE_TEST }
|
|
|
|
}
|
|
|
|
steps {
|
|
|
|
build job: 'connector-debezium-oracle-matrix-test', parameters: [
|
|
|
|
string(name: 'QUAY_CREDENTIALS', value: params.QUAY_CREDENTIALS),
|
|
|
|
string(name: 'REPOSITORY_CORE', value: params.REPOSITORY_CORE),
|
2022-02-04 13:10:23 +01:00
|
|
|
string(name: 'BRANCH', value: params.BRANCH),
|
2022-02-03 14:17:12 +01:00
|
|
|
string(name: 'SOURCE_URL', value: params.SOURCE_URL),
|
|
|
|
booleanParam(name: 'PRODUCT_BUILD', value: params.PRODUCT_BUILD)
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Invoke_postgresql') {
|
|
|
|
when {
|
|
|
|
expression { params.POSTGRESQL_TEST }
|
|
|
|
}
|
|
|
|
steps {
|
|
|
|
build job: 'connector-debezium-postgresql-matrix-test', parameters: [
|
|
|
|
string(name: 'REPOSITORY_CORE', value: params.REPOSITORY_CORE),
|
2022-02-04 13:10:23 +01:00
|
|
|
string(name: 'BRANCH', value: params.BRANCH),
|
2022-02-03 14:17:12 +01:00
|
|
|
string(name: 'SOURCE_URL', value: params.SOURCE_URL),
|
|
|
|
booleanParam(name: 'PRODUCT_BUILD', value: params.PRODUCT_BUILD)
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Invoke_sqlserver') {
|
|
|
|
when {
|
|
|
|
expression { params.SQLSERVER_TEST }
|
|
|
|
}
|
|
|
|
steps {
|
|
|
|
build job: 'connector-debezium-sqlserver-matrix-test', parameters: [
|
|
|
|
string(name: 'REPOSITORY_CORE', value: params.REPOSITORY_CORE),
|
2022-02-04 13:10:23 +01:00
|
|
|
string(name: 'BRANCH', value: params.BRANCH),
|
2022-02-03 14:17:12 +01:00
|
|
|
string(name: 'SOURCE_URL', value: params.SOURCE_URL),
|
|
|
|
booleanParam(name: 'PRODUCT_BUILD', value: params.PRODUCT_BUILD)
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2022-02-04 13:10:23 +01:00
|
|
|
}
|
2022-02-03 14:17:12 +01:00
|
|
|
|
2022-02-04 13:10:23 +01:00
|
|
|
post {
|
|
|
|
always {
|
|
|
|
script {
|
2022-05-03 13:36:24 +02:00
|
|
|
def version = ""
|
|
|
|
|
2022-02-08 11:33:08 +01:00
|
|
|
for (db in ['db2', 'mongodb', 'mysql', 'oracle', 'postgresql', 'sqlserver']) {
|
|
|
|
if (!params["${db.toUpperCase()}_TEST"]) {
|
2022-02-04 13:10:23 +01:00
|
|
|
continue
|
|
|
|
}
|
2022-02-08 11:33:08 +01:00
|
|
|
def build = jenkins.model.Jenkins.instance.getItem("connector-debezium-${db}-matrix-test").lastBuild
|
2022-02-03 14:17:12 +01:00
|
|
|
|
2022-05-03 13:36:24 +02:00
|
|
|
label = "#${build.number} parent: #${currentBuild.number}"
|
|
|
|
|
|
|
|
if (params.LABEL) {
|
|
|
|
label += " ${params.LABEL}"
|
|
|
|
}
|
|
|
|
// if label param is not set and product build, try parsing label from source url/branch
|
|
|
|
else if (params.PRODUCT_BUILD) {
|
|
|
|
def versionMatch = params.SOURCE_URL =~ /.*\/debezium-(.+)-src.zip$/
|
|
|
|
if (!version && versionMatch && versionMatch[0][1]) {
|
|
|
|
version = versionMatch[0][1].toString()
|
|
|
|
label += " version: ${version}"
|
2022-02-03 14:17:12 +01:00
|
|
|
} else {
|
2022-02-04 13:10:23 +01:00
|
|
|
println "Debezium version of product build couldn't be parsed from SOURCE_URL"
|
|
|
|
continue
|
2022-02-03 14:17:12 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// set label
|
2022-02-04 13:10:23 +01:00
|
|
|
build.displayName = label
|
|
|
|
}
|
2022-05-03 13:36:24 +02:00
|
|
|
// set parent job label
|
|
|
|
if (params.LABEL) {
|
|
|
|
currentBuild.displayName = "#${currentBuild.number} ${params.LABEL}"
|
|
|
|
} else if (version) {
|
|
|
|
currentBuild.displayName = "#${currentBuild.number} version: ${version}"
|
2022-02-03 14:17:12 +01:00
|
|
|
}
|
2022-05-03 13:36:24 +02:00
|
|
|
// if not a product build and no custom label set, keep default parent build name
|
2022-02-03 14:17:12 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|