From 4885a948f0c00c0becaa2cfae04cf1edf5354926 Mon Sep 17 00:00:00 2001 From: "Greg L. Turnquist" Date: Tue, 10 Nov 2020 10:00:16 -0600 Subject: [PATCH] DATAJDBC-642 - Use Docker hub credentials for all docker operations. Be sure to use maven caching for cleaning. Also relocate all the CI scripts into a ci folder. --- Jenkinsfile | 120 +++++++++++------- .../accept-third-party-license.sh | 0 ci/clean.sh | 6 + ci/run-tests-against-all-dbs.sh | 3 + ci/test.sh | 10 ++ pom.xml | 5 + run-tests-against-all-dbs.sh | 3 - 7 files changed, 97 insertions(+), 50 deletions(-) rename accept-third-party-license.sh => ci/accept-third-party-license.sh (100%) create mode 100755 ci/clean.sh create mode 100755 ci/run-tests-against-all-dbs.sh create mode 100755 ci/test.sh delete mode 100755 run-tests-against-all-dbs.sh 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