Skip to content

Commit 53f0e79

Browse files
committed
DATAES-996 - Use Docker hub credentials for all CI jobs.
1 parent 3da9eaa commit 53f0e79

File tree

5 files changed

+95
-45
lines changed

5 files changed

+95
-45
lines changed

CI.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-elasticsearch%2
99
Since this pipeline is purely Docker-based, it's easy to:
1010

1111
* Debug what went wrong on your local machine.
12-
* Test out a a tweak to your `test.sh` script before sending it out.
12+
* Test out a a tweak to your `verify.sh` script before sending it out.
1313
* Experiment against a new image before submitting your pull request.
1414

1515
All of these use cases are great reasons to essentially run what the CI server does on your local machine.

Jenkinsfile

+73-44
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,24 @@ pipeline {
2020
}
2121
}
2222
agent {
23-
docker {
24-
image 'adoptopenjdk/openjdk8:latest'
25-
label 'data'
26-
args '-u root -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home'
27-
}
23+
label 'data'
2824
}
2925
options { timeout(time: 30, unit: 'MINUTES') }
26+
27+
environment {
28+
DOCKER_HUB = credentials('hub.docker.com-springbuildmaster')
29+
}
30+
3031
steps {
31-
sh 'mkdir -p /tmp/jenkins-home'
32-
sh 'chown -R 1001:1001 .'
33-
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw clean dependency:list verify -Dsort -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch'
32+
script {
33+
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
34+
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') {
35+
sh "docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}"
36+
sh 'PROFILE=none ci/verify.sh'
37+
sh "ci/clean.sh"
38+
}
39+
}
40+
}
3441
}
3542
}
3643

@@ -44,29 +51,47 @@ pipeline {
4451
parallel {
4552
stage("test: baseline (jdk11)") {
4653
agent {
47-
docker {
48-
image 'adoptopenjdk/openjdk11:latest'
49-
label 'data'
50-
args '-u root -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home'
51-
}
54+
label 'data'
5255
}
5356
options { timeout(time: 30, unit: 'MINUTES') }
57+
58+
environment {
59+
DOCKER_HUB = credentials('hub.docker.com-springbuildmaster')
60+
}
61+
5462
steps {
55-
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pjava11 clean dependency:list verify -Dsort -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch'
63+
script {
64+
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
65+
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') {
66+
sh "docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}"
67+
sh 'PROFILE=java11 ci/verify.sh'
68+
sh "ci/clean.sh"
69+
}
70+
}
71+
}
5672
}
5773
}
5874

5975
stage("test: baseline (jdk15)") {
6076
agent {
61-
docker {
62-
image 'adoptopenjdk/openjdk15:latest'
63-
label 'data'
64-
args '-u root -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home'
65-
}
77+
label 'data'
6678
}
6779
options { timeout(time: 30, unit: 'MINUTES') }
80+
81+
environment {
82+
DOCKER_HUB = credentials('hub.docker.com-springbuildmaster')
83+
}
84+
6885
steps {
69-
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pjava11 clean dependency:list verify -Dsort -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch'
86+
script {
87+
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
88+
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') {
89+
sh "docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}"
90+
sh 'PROFILE=java11 ci/verify.sh'
91+
sh "ci/clean.sh"
92+
}
93+
}
94+
}
7095
}
7196
}
7297
}
@@ -80,11 +105,7 @@ pipeline {
80105
}
81106
}
82107
agent {
83-
docker {
84-
image 'adoptopenjdk/openjdk8:latest'
85-
label 'data'
86-
args '-u root -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home'
87-
}
108+
label 'data'
88109
}
89110
options { timeout(time: 20, unit: 'MINUTES') }
90111

@@ -93,26 +114,28 @@ pipeline {
93114
}
94115

95116
steps {
96-
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,artifactory -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch ' +
97-
'-Dartifactory.server=https://repo.spring.io ' +
98-
"-Dartifactory.username=${ARTIFACTORY_USR} " +
99-
"-Dartifactory.password=${ARTIFACTORY_PSW} " +
100-
"-Dartifactory.staging-repository=libs-snapshot-local " +
101-
"-Dartifactory.build-name=spring-data-elasticsearch " +
102-
"-Dartifactory.build-number=${BUILD_NUMBER} " +
103-
'-Dmaven.test.skip=true clean deploy -U -B'
117+
script {
118+
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
119+
docker.image('adoptopenjdk/openjdk8:latest').inside('-v $HOME:/tmp/jenkins-home') {
120+
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,artifactory -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch-non-root ' +
121+
'-Dartifactory.server=https://repo.spring.io ' +
122+
"-Dartifactory.username=${ARTIFACTORY_USR} " +
123+
"-Dartifactory.password=${ARTIFACTORY_PSW} " +
124+
"-Dartifactory.staging-repository=libs-snapshot-local " +
125+
"-Dartifactory.build-name=spring-data-elasticsearch " +
126+
"-Dartifactory.build-number=${BUILD_NUMBER} " +
127+
'-Dmaven.test.skip=true clean deploy -U -B'
128+
}
129+
}
130+
}
104131
}
105132
}
106133
stage('Publish documentation') {
107134
when {
108135
branch '4.1.x'
109136
}
110137
agent {
111-
docker {
112-
image 'adoptopenjdk/openjdk8:latest'
113-
label 'data'
114-
args '-u root -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home'
115-
}
138+
label 'data'
116139
}
117140
options { timeout(time: 20, unit: 'MINUTES') }
118141

@@ -121,12 +144,18 @@ pipeline {
121144
}
122145

123146
steps {
124-
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,distribute -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch ' +
125-
'-Dartifactory.server=https://repo.spring.io ' +
126-
"-Dartifactory.username=${ARTIFACTORY_USR} " +
127-
"-Dartifactory.password=${ARTIFACTORY_PSW} " +
128-
"-Dartifactory.distribution-repository=temp-private-local " +
129-
'-Dmaven.test.skip=true clean deploy -U -B'
147+
script {
148+
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
149+
docker.image('adoptopenjdk/openjdk8:latest').inside('-v $HOME:/tmp/jenkins-home') {
150+
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pci,distribute -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch-non-root ' +
151+
'-Dartifactory.server=https://repo.spring.io ' +
152+
"-Dartifactory.username=${ARTIFACTORY_USR} " +
153+
"-Dartifactory.password=${ARTIFACTORY_PSW} " +
154+
"-Dartifactory.distribution-repository=temp-private-local " +
155+
'-Dmaven.test.skip=true clean deploy -U -B'
156+
}
157+
}
158+
}
130159
}
131160
}
132161
}

ci/clean.sh

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/bash -x
2+
3+
set -euo pipefail
4+
5+
MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" \
6+
./mvnw clean -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch

ci/verify.sh

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/bin/bash -x
2+
3+
set -euo pipefail
4+
5+
mkdir -p /tmp/jenkins-home/.m2/spring-data-elasticsearch
6+
chown -R 1001:1001 .
7+
8+
MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" \
9+
./mvnw \
10+
-P${PROFILE} clean dependency:list verify -Dsort -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch

pom.xml

+5
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,11 @@
415415
<id>spring-plugins-release</id>
416416
<url>https://repo.spring.io/plugins-release</url>
417417
</pluginRepository>
418+
<pluginRepository>
419+
<id>bintray-plugins</id>
420+
<name>bintray-plugins</name>
421+
<url>https://jcenter.bintray.com</url>
422+
</pluginRepository>
418423
</pluginRepositories>
419424

420425
</project>

0 commit comments

Comments
 (0)