Skip to content

Commit a2d2a61

Browse files
committed
DATAES-996 - Use Docker hub credentials for all CI jobs.
1 parent fd97599 commit a2d2a61

File tree

5 files changed

+80
-45
lines changed

5 files changed

+80
-45
lines changed

CI.adoc

Lines changed: 1 addition & 1 deletion
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

Lines changed: 58 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,19 @@ 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') }
3026
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'
27+
script {
28+
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
29+
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') {
30+
sh "docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}"
31+
sh 'PROFILE=none ci/verify.sh'
32+
sh "ci/clean.sh"
33+
}
34+
}
35+
}
3436
}
3537
}
3638

@@ -44,29 +46,37 @@ pipeline {
4446
parallel {
4547
stage("test: baseline (jdk11)") {
4648
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-
}
49+
label 'data'
5250
}
5351
options { timeout(time: 30, unit: 'MINUTES') }
5452
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'
53+
script {
54+
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
55+
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') {
56+
sh "docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}"
57+
sh 'PROFILE=java11 ci/verify.sh'
58+
sh "ci/clean.sh"
59+
}
60+
}
61+
}
5662
}
5763
}
5864

5965
stage("test: baseline (jdk15)") {
6066
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-
}
67+
label 'data'
6668
}
6769
options { timeout(time: 30, unit: 'MINUTES') }
6870
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'
71+
script {
72+
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
73+
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') {
74+
sh "docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}"
75+
sh 'PROFILE=java11 ci/verify.sh'
76+
sh "ci/clean.sh"
77+
}
78+
}
79+
}
7080
}
7181
}
7282
}
@@ -80,11 +90,7 @@ pipeline {
8090
}
8191
}
8292
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-
}
93+
label 'data'
8894
}
8995
options { timeout(time: 20, unit: 'MINUTES') }
9096

@@ -93,26 +99,28 @@ pipeline {
9399
}
94100

95101
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'
102+
script {
103+
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
104+
docker.image('adoptopenjdk/openjdk8:latest').inside('-v $HOME:/tmp/jenkins-home') {
105+
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 ' +
106+
'-Dartifactory.server=https://repo.spring.io ' +
107+
"-Dartifactory.username=${ARTIFACTORY_USR} " +
108+
"-Dartifactory.password=${ARTIFACTORY_PSW} " +
109+
"-Dartifactory.staging-repository=libs-snapshot-local " +
110+
"-Dartifactory.build-name=spring-data-elasticsearch " +
111+
"-Dartifactory.build-number=${BUILD_NUMBER} " +
112+
'-Dmaven.test.skip=true clean deploy -U -B'
113+
}
114+
}
115+
}
104116
}
105117
}
106118
stage('Publish documentation') {
107119
when {
108120
branch 'master'
109121
}
110122
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-
}
123+
label 'data'
116124
}
117125
options { timeout(time: 20, unit: 'MINUTES') }
118126

@@ -121,12 +129,18 @@ pipeline {
121129
}
122130

123131
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'
132+
script {
133+
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
134+
docker.image('adoptopenjdk/openjdk8:latest').inside('-v $HOME:/tmp/jenkins-home') {
135+
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 ' +
136+
'-Dartifactory.server=https://repo.spring.io ' +
137+
"-Dartifactory.username=${ARTIFACTORY_USR} " +
138+
"-Dartifactory.password=${ARTIFACTORY_PSW} " +
139+
"-Dartifactory.distribution-repository=temp-private-local " +
140+
'-Dmaven.test.skip=true clean deploy -U -B'
141+
}
142+
}
143+
}
130144
}
131145
}
132146
}

ci/clean.sh

Lines changed: 6 additions & 0 deletions
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

Lines changed: 10 additions & 0 deletions
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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,11 @@
441441
<id>spring-plugins-release</id>
442442
<url>https://repo.spring.io/plugins-release</url>
443443
</pluginRepository>
444+
<pluginRepository>
445+
<id>bintray-plugins</id>
446+
<name>bintray-plugins</name>
447+
<url>https://jcenter.bintray.com</url>
448+
</pluginRepository>
444449
</pluginRepositories>
445450

446451
</project>

0 commit comments

Comments
 (0)