From a1aa6b8b449a84094fea7a31a89a0965a14baa1f Mon Sep 17 00:00:00 2001 From: John Blum Date: Thu, 6 Oct 2022 14:32:28 -0700 Subject: [PATCH] Configure the Jenkins CI pipeline build for SDG 2.8.x. Resolves #623. --- Jenkinsfile | 43 +++++++++++++++++++++++++----------------- ci/pipeline.properties | 16 +++++----------- 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 295de107..14c42865 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -31,7 +31,7 @@ pipeline { agent { label 'data' } - options { timeout(time: 30, unit: 'MINUTES') } + options { timeout(time: 60, unit: 'MINUTES') } environment { ARTIFACTORY = credentials("${p['artifactory.credentials']}") } @@ -44,7 +44,7 @@ pipeline { sh 'rm -Rf `find . -name "newDB"`' sh 'rm -Rf `find . -name "server" | grep -v "src"`' sh 'rm -Rf `find . -name "*.log"`' - sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home -Duser.dir=$PWD -Djava.io.tmpdir=/tmp" ./mvnw -s settings.xml clean dependency:list test -Dsort -U -B' + sh 'GRADLE_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home -Duser.dir=$PWD -Djava.io.tmpdir=/tmp" ./gradlew clean check --no-daemon --refresh-dependencies --stacktrace' } } } @@ -69,21 +69,30 @@ pipeline { steps { script { - docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) { - sh 'rm -Rf `find . -name "BACKUPDEFAULT*"`' - sh 'rm -Rf `find . -name "ConfigDiskDir*"`' - sh 'rm -Rf `find . -name "locator*" | grep -v "src"`' - sh 'rm -Rf `find . -name "newDB"`' - sh 'rm -Rf `find . -name "server" | grep -v "src"`' - sh 'rm -Rf `find . -name "*.log"`' - sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home -Duser.dir=$PWD -Djava.io.tmpdir=/tmp " ./mvnw -s settings.xml -Pci,artifactory ' + - '-Dartifactory.server=https://repo.spring.io ' + - "-Dartifactory.username=${ARTIFACTORY_USR} " + - "-Dartifactory.password=${ARTIFACTORY_PSW} " + - "-Dartifactory.staging-repository=libs-snapshot-local " + - "-Dartifactory.build-name=spring-data-geode " + - "-Dartifactory.build-number=${BUILD_NUMBER} " + - '-Dmaven.test.skip=true clean deploy -U -B' + docker.image(p['docker.container.image.java.main']).inside(p['docker.container.inside.env.basic']) { + withCredentials([file(credentialsId: 'spring-signing-secring.gpg', variable: 'SIGNING_KEYRING_FILE')]) { + withCredentials([string(credentialsId: 'spring-gpg-passphrase', variable: 'SIGNING_PASSWORD')]) { + withCredentials([usernamePassword(credentialsId: 'oss-token', usernameVariable: 'OSSRH_USERNAME', passwordVariable: 'OSSRH_PASSWORD')]) { + withCredentials([usernamePassword(credentialsId: p['artifactory.credentials'], usernameVariable: 'ARTIFACTORY_USERNAME', passwordVariable: 'ARTIFACTORY_PASSWORD')]) { + sh 'rm -Rf `find . -name "BACKUPDEFAULT*"`' + sh 'rm -Rf `find . -name "ConfigDiskDir*"`' + sh 'rm -Rf `find . -name "locator*" | grep -v "src"`' + sh 'rm -Rf `find . -name "newDB"`' + sh 'rm -Rf `find . -name "server" | grep -v "src"`' + sh 'rm -Rf `find . -name "*.log"`' + sh 'GRADLE_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home -Duser.dir=$PWD -Djava.io.tmpdir=/tmp" ./gradlew publishArtifacts releasePublishedArtifacts --no-build-cache --no-configuration-cache --no-daemon --stacktrace ' + + "-PartifactoryUsername=${ARTIFACTORY_USERNAME} " + + "-PartifactoryPassword=${ARTIFACTORY_PASSWORD} " + + "-PossrhUsername=${OSSRH_USERNAME} " + + "-PossrhPassword=${OSSRH_PASSWORD} " + + "-Psigning.keyId=${SPRING_SIGNING_KEYID} " + + "-Psigning.password=${SIGNING_PASSWORD} " + + "-Psigning.secretKeyRingFile=${SIGNING_KEYRING_FILE} " + + '-x test - x integrationTest' + } + } + } + } } } } diff --git a/ci/pipeline.properties b/ci/pipeline.properties index 57e4868d..e51b5e84 100644 --- a/ci/pipeline.properties +++ b/ci/pipeline.properties @@ -1,18 +1,12 @@ # Java versions -java.main.tag=17.0.3_7-jdk +java.main.tag=8u332-b09-jdk +java.next.tag=11.0.15_10-jdk +java.lts.tag=17.0.3_7-jdk # Docker container images - standard docker.java.main.image=harbor-repo.vmware.com/dockerhub-proxy-cache/library/eclipse-temurin:${java.main.tag} - -# Supported versions of MongoDB -docker.mongodb.4.4.version=4.4.12 -docker.mongodb.5.0.version=5.0.6 - -# Supported versions of Redis -docker.redis.6.version=6.2.6 - -# Supported versions of Cassandra -docker.cassandra.3.version=3.11.12 +docker.java.next.image=harbor-repo.vmware.com/dockerhub-proxy-cache/library/eclipse-temurin:${java.next.tag} +docker.java.lts.image=harbor-repo.vmware.com/dockerhub-proxy-cache/library/eclipse-temurin:${java.lts.tag} # Docker environment settings docker.java.inside.basic=-v $HOME:/tmp/jenkins-home