2020-10-13 01:12:30 +02:00
|
|
|
if (
|
|
|
|
!PRODUCT_VERSION ||
|
2021-09-14 13:32:54 +02:00
|
|
|
!PRODUCT_VERSION_RELEASE ||
|
|
|
|
!PRODUCT_MILESTONE ||
|
|
|
|
!DEBEZIUM_VERSION ||
|
|
|
|
!BACON_REPO ||
|
|
|
|
!BACON_VERSION ||
|
|
|
|
!BACON_CONFIG_URL ||
|
2020-10-13 01:12:30 +02:00
|
|
|
!USERNAME ||
|
|
|
|
!PASSWORD ||
|
|
|
|
!TARGET_HOST ||
|
|
|
|
!ARTIFACT_DIR
|
|
|
|
) {
|
|
|
|
error 'Input parameters not provided'
|
|
|
|
}
|
|
|
|
|
2021-09-14 13:32:54 +02:00
|
|
|
CONFIG_DIR = '.config/pnc-bacon'
|
|
|
|
BUILD_CONFIG_DIR = 'debezium-bacon'
|
|
|
|
BACON_MAVEN_URL = "https://repo1.maven.org/maven2/org/jboss/pnc/bacon/cli/$BACON_VERSION/cli-$BACON_VERSION-shaded.jar"
|
|
|
|
CERTIFICATES = ['Eng_Ops_CA.crt', 'Red_Hat_IS_CA.crt', 'RH-IT-Root-CA.crt']
|
|
|
|
BUILD_VERSION = "${PRODUCT_VERSION}.${PRODUCT_VERSION_RELEASE}.${PRODUCT_MILESTONE}"
|
|
|
|
RELEASE_VERSION = "AMQ-CDC-${PRODUCT_VERSION}.${PRODUCT_MILESTONE}"
|
|
|
|
PACKAGES_DIR = "target/debezium-integration-${BUILD_VERSION}"
|
|
|
|
TARGET_DIR = "${ARTIFACT_DIR}/${RELEASE_VERSION}"
|
2020-10-13 01:12:30 +02:00
|
|
|
REMOTE_TARGET = [
|
|
|
|
'name': 'stage',
|
|
|
|
'host': TARGET_HOST,
|
|
|
|
'user': USERNAME,
|
|
|
|
'password': PASSWORD,
|
|
|
|
'allowAnyHosts': true
|
|
|
|
]
|
|
|
|
|
|
|
|
node('Slave') {
|
|
|
|
try {
|
2021-09-14 13:32:54 +02:00
|
|
|
stage ('Download and setup bacon') {
|
|
|
|
sh """
|
|
|
|
rm -rf *
|
|
|
|
curl -k -o bacon.jar $BACON_MAVEN_URL
|
|
|
|
mkdir -p $BUILD_CONFIG_DIR $HOME/$CONFIG_DIR
|
|
|
|
curl -k -o $BUILD_CONFIG_DIR/build-config.yaml '$BACON_CONFIG_URL;f=build-config.yaml'
|
|
|
|
curl -k -o $HOME/$CONFIG_DIR/config.yaml '$BACON_CONFIG_URL;f=config.yaml'
|
|
|
|
"""
|
|
|
|
for (certificate in CERTIFICATES) {
|
|
|
|
sh (script: """
|
|
|
|
curl -k -o $certificate '$BACON_CONFIG_URL;f=$certificate'
|
|
|
|
keytool -importcert -cacerts -alias $certificate -file $certificate -noprompt -storepass changeit
|
|
|
|
""", returnStatus: true)
|
2020-10-13 01:12:30 +02:00
|
|
|
}
|
|
|
|
}
|
2021-09-14 13:32:54 +02:00
|
|
|
stage ('Build product') {
|
2021-10-22 06:19:40 +02:00
|
|
|
sh "java -jar ./bacon.jar pig run ${TEMPORARY_BUILD == 'true' ? '-t' : ''} -e product-version=$PRODUCT_VERSION -e product-version-release=$PRODUCT_VERSION_RELEASE -e debezium-version=$DEBEZIUM_VERSION -e milestone=$PRODUCT_MILESTONE -v debezium-bacon"
|
2021-09-14 13:32:54 +02:00
|
|
|
}
|
|
|
|
stage('Extract connector packages') {
|
|
|
|
dir (PACKAGES_DIR) {
|
|
|
|
sh "unzip -j debezium-*-maven-repository.zip '*.zip'"
|
2020-10-13 01:12:30 +02:00
|
|
|
}
|
|
|
|
}
|
2021-09-14 13:32:54 +02:00
|
|
|
|
2020-10-13 01:12:30 +02:00
|
|
|
stage('Upload artifacts') {
|
2021-09-14 13:32:54 +02:00
|
|
|
dir (PACKAGES_DIR) {
|
|
|
|
withCredentials([string(credentialsId: TARGET_HOST, variable: 'TARGET_HOST')]) {
|
2020-10-13 01:12:30 +02:00
|
|
|
sh """
|
|
|
|
set +x
|
2021-09-14 13:32:54 +02:00
|
|
|
docker run --rm -v \$(pwd):/upload ictu/sshpass -p ${PASSWORD} rsync -va -e \"ssh -o StrictHostKeyChecking=no\" --include='*.zip' /upload/ ${
|
2020-10-13 01:12:30 +02:00
|
|
|
USERNAME
|
2021-09-14 13:32:54 +02:00
|
|
|
}@\${TARGET_HOST}:${TARGET_DIR}
|
|
|
|
docker run --rm ictu/sshpass -p ${PASSWORD} ssh -o StrictHostKeyChecking=no ${USERNAME}@\${TARGET_HOST} ls -al ${TARGET_DIR}
|
2020-10-13 01:12:30 +02:00
|
|
|
"""
|
2021-09-14 13:32:54 +02:00
|
|
|
if (STAGE_FILES) {
|
|
|
|
sh """
|
|
|
|
set +x
|
|
|
|
docker run --rm ictu/sshpass -p ${PASSWORD} ssh -o StrictHostKeyChecking=no ${
|
|
|
|
USERNAME
|
|
|
|
}@\${TARGET_HOST} /mnt/redhat/scripts/rel-eng/utility/bus-clients/stage-mw-release ${RELEASE_VERSION}
|
|
|
|
"""
|
|
|
|
}
|
2020-10-13 01:12:30 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} finally {
|
2021-10-05 07:20:45 +02:00
|
|
|
mail to: MAIL_TO, subject: "${JOB_NAME} run #${BUILD_NUMBER} finished", body: "Run ${BUILD_URL} finished with result: ${currentBuild.currentResult}"
|
2020-10-13 01:12:30 +02:00
|
|
|
}
|
|
|
|
}
|