2018-06-18 19:06:38 +02:00
|
|
|
import groovy.json.*
|
|
|
|
import java.util.stream.*
|
|
|
|
|
|
|
|
if (
|
|
|
|
!DEBEZIUM_REPOSITORY ||
|
|
|
|
!DEBEZIUM_BRANCH ||
|
2020-10-02 11:29:56 +02:00
|
|
|
!DEBEZIUM_ADDITIONAL_REPOSITORIES
|
2018-06-18 19:06:38 +02:00
|
|
|
) {
|
|
|
|
error 'Input parameters not provided'
|
|
|
|
}
|
|
|
|
|
2019-07-18 10:01:20 +02:00
|
|
|
GIT_CREDENTIALS_ID = 'debezium-github'
|
2018-06-18 19:06:38 +02:00
|
|
|
|
|
|
|
DEBEZIUM_DIR = 'debezium'
|
2019-07-18 10:01:20 +02:00
|
|
|
HOME_DIR = '/home/cloud-user'
|
|
|
|
|
|
|
|
ORACLE_ARTIFACT_DIR = "$HOME_DIR/oracle-libs/12.2.0.1.0"
|
2020-05-18 16:07:23 +02:00
|
|
|
ORACLE_ARTIFACT_VERSION = '12.2.0.1'
|
2018-06-18 19:06:38 +02:00
|
|
|
|
2020-10-02 11:29:56 +02:00
|
|
|
def additionalDirs = []
|
2018-06-18 19:06:38 +02:00
|
|
|
node('Slave') {
|
|
|
|
|
|
|
|
stage ('Initialize') {
|
|
|
|
dir('.') {
|
|
|
|
deleteDir()
|
|
|
|
}
|
|
|
|
checkout([$class: 'GitSCM',
|
|
|
|
branches: [[name: "*/$DEBEZIUM_BRANCH"]],
|
|
|
|
doGenerateSubmoduleConfigurations: false,
|
|
|
|
extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: DEBEZIUM_DIR]],
|
|
|
|
submoduleCfg: [],
|
|
|
|
userRemoteConfigs: [[url: "https://$DEBEZIUM_REPOSITORY", credentialsId: GIT_CREDENTIALS_ID]]
|
|
|
|
]
|
|
|
|
)
|
2020-10-02 11:29:56 +02:00
|
|
|
DEBEZIUM_ADDITIONAL_REPOSITORIES.split().each {
|
|
|
|
def (id, repository, branch) = it.split('#')
|
|
|
|
checkout([$class: 'GitSCM',
|
|
|
|
branches: [[name: "*/$branch"]],
|
|
|
|
doGenerateSubmoduleConfigurations: false,
|
|
|
|
extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: id]],
|
|
|
|
submoduleCfg: [],
|
|
|
|
userRemoteConfigs: [[url: "https://$repository", credentialsId: GIT_CREDENTIALS_ID]]
|
|
|
|
]
|
|
|
|
)
|
|
|
|
additionalDirs << id
|
|
|
|
}
|
|
|
|
dir(ORACLE_ARTIFACT_DIR) {
|
|
|
|
sh "mvn install:install-file -DgroupId=com.oracle.instantclient -DartifactId=ojdbc8 -Dversion=$ORACLE_ARTIFACT_VERSION -Dpackaging=jar -Dfile=ojdbc8.jar"
|
|
|
|
sh "mvn install:install-file -DgroupId=com.oracle.instantclient -DartifactId=xstreams -Dversion=$ORACLE_ARTIFACT_VERSION -Dpackaging=jar -Dfile=xstreams.jar"
|
|
|
|
}
|
2018-06-18 19:06:38 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
stage ('Build and deploy Debezium') {
|
|
|
|
dir(DEBEZIUM_DIR) {
|
|
|
|
sh "mvn clean deploy -U -s $HOME/.m2/settings-snapshots.xml -DdeployAtEnd=true -DskipITs -DskipTests -Passembly"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-10-02 11:29:56 +02:00
|
|
|
additionalDirs.each { id ->
|
|
|
|
stage ("Build and deploy Debezium ${id.capitalize()}") {
|
|
|
|
dir(id) {
|
|
|
|
sh "mvn clean deploy -U -s $HOME/.m2/settings-snapshots.xml -DdeployAtEnd=true -DskipITs -DskipTests -P${id == 'incubator' ? 'assembly,oracle' : 'assembly'}"
|
|
|
|
}
|
2018-06-18 19:06:38 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|