diff --git a/Jenkinsfile b/Jenkinsfile
index be3c0e04..26e6eb79 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -20,18 +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 './accept-third-party-license.sh'
- sh 'mkdir -p /tmp/jenkins-home'
- sh 'chown -R 1001:1001 .'
- sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,all-dbs clean dependency:list test -Dsort -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-jdbc'
+ 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,all-dbs ci/test.sh"
+ sh "ci/clean.sh"
+ }
+ }
+ }
}
}
@@ -45,31 +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 './accept-third-party-license.sh'
- sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,java11 clean dependency:list test -Dsort -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-jdbc'
+ 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 (jdk15)") {
agent {
- docker {
- image 'adoptopenjdk/openjdk15: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 './accept-third-party-license.sh'
- sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,java11 clean dependency:list test -Dsort -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-jdbc'
+ 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"
+ }
+ }
+ }
}
}
}
@@ -83,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') }
@@ -96,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-jdbc ' +
- '-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-jdbc " +
- "-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-jdbc-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-jdbc " +
+ "-Dartifactory.build-number=${BUILD_NUMBER} " +
+ '-Dmaven.test.skip=true clean deploy -U -B'
+ }
+ }
+ }
}
}
@@ -112,11 +136,7 @@ pipeline {
branch '2.1.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') }
@@ -125,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-jdbc ' +
- '-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-jdbc-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/accept-third-party-license.sh b/ci/accept-third-party-license.sh
similarity index 100%
rename from accept-third-party-license.sh
rename to ci/accept-third-party-license.sh
diff --git a/ci/clean.sh b/ci/clean.sh
new file mode 100755
index 00000000..35d31b82
--- /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-jdbc
diff --git a/ci/run-tests-against-all-dbs.sh b/ci/run-tests-against-all-dbs.sh
new file mode 100755
index 00000000..0746d338
--- /dev/null
+++ b/ci/run-tests-against-all-dbs.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+./mvnw clean install -Pall-dbs
diff --git a/ci/test.sh b/ci/test.sh
new file mode 100755
index 00000000..cc38e496
--- /dev/null
+++ b/ci/test.sh
@@ -0,0 +1,10 @@
+#!/bin/bash -x
+
+set -euo pipefail
+
+ci/accept-third-party-license.sh
+mkdir -p /tmp/jenkins-home
+chown -R 1001:1001 .
+MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" \
+ ./mvnw \
+ -P${PROFILE} clean dependency:list test -Dsort -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-jdbc
diff --git a/pom.xml b/pom.xml
index 2c00d358..53807b92 100644
--- a/pom.xml
+++ b/pom.xml
@@ -280,6 +280,11 @@
spring-plugins-snapshot
https://repo.spring.io/plugins-snapshot
+
+ bintray-plugins
+ bintray-plugins
+ https://jcenter.bintray.com
+
diff --git a/run-tests-against-all-dbs.sh b/run-tests-against-all-dbs.sh
deleted file mode 100755
index 1fb700b4..00000000
--- a/run-tests-against-all-dbs.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-mvn clean install -Pall-dbs