diff --git a/Jenkinsfile b/Jenkinsfile
index 7d01e141..d23f19f1 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -20,16 +20,24 @@ pipeline {
}
}
agent {
- docker {
- image 'adoptopenjdk/openjdk8:latest'
- label 'data'
- args '-u root -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home'
- }
+ label 'data'
}
options { timeout(time: 30, unit: 'MINUTES') }
+
+ environment {
+ DOCKER_HUB = credentials('hub.docker.com-springbuildmaster')
+ }
+
steps {
- sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci clean dependency:list test -Dsort -Dbundlor.enabled=false -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-couchbase'
- sh "chown -R 1001:1001 target"
+ script {
+ docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
+ docker.image('adoptopenjdk/openjdk8:latest').inside('-u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v $HOME:/tmp/jenkins-home') {
+ sh "docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}"
+ sh 'PROFILE=ci ci/test.sh'
+ sh "ci/clean.sh"
+ }
+ }
+ }
}
}
@@ -43,30 +51,47 @@ pipeline {
parallel {
stage("test: baseline (jdk11)") {
agent {
- docker {
- image 'adoptopenjdk/openjdk11:latest'
- label 'data'
- args '-u root -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home'
- }
+ label 'data'
}
options { timeout(time: 30, unit: 'MINUTES') }
+
+ environment {
+ DOCKER_HUB = credentials('hub.docker.com-springbuildmaster')
+ }
+
steps {
- sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,java11 clean dependency:list test -Dsort -Dbundlor.enabled=false -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-couchbase'
+ script {
+ docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
+ docker.image('adoptopenjdk/openjdk11:latest').inside('-u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v $HOME:/tmp/jenkins-home') {
+ sh "docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}"
+ sh 'PROFILE=ci,java11 ci/test.sh'
+ sh "ci/clean.sh"
+ }
+ }
+ }
}
}
- stage("test: baseline (jdk14)") {
+ stage("test: baseline (jdk15)") {
agent {
- docker {
- image 'adoptopenjdk/openjdk14:latest'
- label 'data'
- args '-u root -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home'
- // root but with no maven caching
- }
+ label 'data'
}
options { timeout(time: 30, unit: 'MINUTES') }
+
+ environment {
+ DOCKER_HUB = credentials('hub.docker.com-springbuildmaster')
+ }
+
steps {
- sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,java11 clean dependency:list test -Dsort -Dbundlor.enabled=false -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-couchbase'
+ script {
+ docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
+ docker.image('adoptopenjdk/openjdk15:latest').inside('-u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v $HOME:/tmp/jenkins-home') {
+ sh "docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}"
+ sh 'PROFILE=ci,java11 ci/test.sh'
+ sh "ci/clean.sh"
+ }
+ }
+ }
}
}
}
@@ -80,11 +105,7 @@ pipeline {
}
}
agent {
- docker {
- image 'adoptopenjdk/openjdk8:latest'
- label 'data'
- args '-u root -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home'
- }
+ label 'data'
}
options { timeout(time: 20, unit: 'MINUTES') }
@@ -93,14 +114,20 @@ pipeline {
}
steps {
- sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,artifactory -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-couchbase ' +
- '-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-couchbase " +
- "-Dartifactory.build-number=${BUILD_NUMBER} " +
- '-Dmaven.test.skip=true clean deploy -U -B'
+ script {
+ docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
+ docker.image('adoptopenjdk/openjdk8:latest').inside('-v $HOME:/tmp/jenkins-home') {
+ sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,artifactory -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-couchbase-non-root ' +
+ '-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-couchbase " +
+ "-Dartifactory.build-number=${BUILD_NUMBER} " +
+ '-Dmaven.test.skip=true clean deploy -U -B'
+ }
+ }
+ }
}
}
@@ -109,11 +136,7 @@ pipeline {
branch '4.0.x'
}
agent {
- docker {
- image 'adoptopenjdk/openjdk8:latest'
- label 'data'
- args '-u root -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home'
- }
+ label 'data'
}
options { timeout(time: 20, unit: 'MINUTES') }
@@ -122,12 +145,18 @@ pipeline {
}
steps {
- sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,distribute -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-couchbase ' +
- '-Dartifactory.server=https://repo.spring.io ' +
- "-Dartifactory.username=${ARTIFACTORY_USR} " +
- "-Dartifactory.password=${ARTIFACTORY_PSW} " +
- "-Dartifactory.distribution-repository=temp-private-local " +
- '-Dmaven.test.skip=true clean deploy -U -B'
+ script {
+ docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
+ docker.image('adoptopenjdk/openjdk8:latest').inside('-v $HOME:/tmp/jenkins-home') {
+ sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,distribute -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-couchbase-non-root ' +
+ '-Dartifactory.server=https://repo.spring.io ' +
+ "-Dartifactory.username=${ARTIFACTORY_USR} " +
+ "-Dartifactory.password=${ARTIFACTORY_PSW} " +
+ "-Dartifactory.distribution-repository=temp-private-local " +
+ '-Dmaven.test.skip=true clean deploy -U -B'
+ }
+ }
+ }
}
}
}
diff --git a/ci/clean.sh b/ci/clean.sh
new file mode 100755
index 00000000..7970dc0e
--- /dev/null
+++ b/ci/clean.sh
@@ -0,0 +1,6 @@
+#!/bin/bash -x
+
+set -euo pipefail
+
+MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" \
+ ./mvnw clean -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-couchbase
diff --git a/ci/test.sh b/ci/test.sh
new file mode 100755
index 00000000..92d97348
--- /dev/null
+++ b/ci/test.sh
@@ -0,0 +1,10 @@
+#!/bin/bash -x
+
+set -euo pipefail
+
+mkdir -p /tmp/jenkins-home/.m2/spring-data-couchbase
+chown -R 1001:1001 .
+
+MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" \
+ ./mvnw \
+ -P${PROFILE} clean dependency:list test -Dsort -Dbundlor.enabled=false -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-couchbase
diff --git a/pom.xml b/pom.xml
index 86173d3f..32f44d32 100644
--- a/pom.xml
+++ b/pom.xml
@@ -218,6 +218,11 @@
spring-plugins-release
https://repo.spring.io/plugins-release
+
+ bintray-plugins
+ bintray-plugins
+ https://jcenter.bintray.com
+