Skip to content

Commit b267619

Browse files
committed
Read CI properties from external file.
By reading a properties file from an external location, it is possible to inject a consistent set of properties from Spring Data Build. This also supports repeatable builds. Closes #2413.
1 parent 9a15a5e commit b267619

File tree

2 files changed

+48
-4
lines changed

2 files changed

+48
-4
lines changed

Jenkinsfile

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
def p = [:]
2+
node {
3+
checkout scm
4+
p = readProperties interpolate: true, file: 'ci/pipeline.properties'
5+
}
6+
17
pipeline {
28
agent none
39

@@ -31,7 +37,7 @@ pipeline {
3137
steps {
3238
script {
3339
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') {
40+
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.docker']) {
3541
sh "docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}"
3642
sh 'PROFILE=all-dbs ci/test.sh'
3743
sh "ci/clean.sh"
@@ -61,7 +67,7 @@ pipeline {
6167
steps {
6268
script {
6369
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
64-
docker.image('adoptopenjdk/openjdk11:latest').inside('-v $HOME:/tmp/jenkins-home') {
70+
docker.image(p['docker.java.next.image']).inside(p['docker.java.inside.basic']) {
6571
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pjava11 clean dependency:list test -Dsort -Dbundlor.enabled=false -U -B'
6672
}
6773
}
@@ -80,7 +86,7 @@ pipeline {
8086
steps {
8187
script {
8288
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
83-
docker.image('openjdk:17-bullseye').inside('-v $HOME:/tmp/jenkins-home') {
89+
docker.image(p['docker.java.lts.image']).inside(p['docker.java.inside.basic']) {
8490
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pjava11 clean dependency:list test -Dsort -Dbundlor.enabled=false -U -B'
8591
}
8692
}
@@ -110,7 +116,7 @@ pipeline {
110116
steps {
111117
script {
112118
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
113-
docker.image('adoptopenjdk/openjdk8:latest').inside('-v $HOME:/tmp/jenkins-home') {
119+
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) {
114120
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory ' +
115121
'-Dartifactory.server=https://repo.spring.io ' +
116122
"-Dartifactory.username=${ARTIFACTORY_USR} " +

ci/pipeline.properties

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Docker container images - standard
2+
docker.java.main.image=adoptopenjdk/openjdk8:latest
3+
docker.java.next.image=adoptopenjdk/openjdk11:latest
4+
docker.java.lts.image=openjdk:17-bullseye
5+
6+
# Docker container images - MongoDB
7+
docker.java.main.mongodb.5.0.name=springci/spring-data-openjdk8-with-mongodb-5.0.0
8+
docker.java.main.mongodb.4.0.name=springci/spring-data-openjdk8-with-mongodb-4.0.23
9+
docker.java.main.mongodb.4.4.name=springci/spring-data-openjdk8-with-mongodb-4.4.4
10+
docker.java.next.mongodb.4.4.name=springci/spring-data-openjdk16-with-mongodb-4.4.4
11+
12+
docker.java.main.mongodb.5.0.image=${docker.java.main.mongodb.5.0.name}:latest
13+
docker.java.main.mongodb.4.0.image=${docker.java.main.mongodb.4.0.name}:latest
14+
docker.java.main.mongodb.4.4.image=${docker.java.main.mongodb.4.4.name}:latest
15+
docker.java.next.mongodb.4.4.image=${docker.java.next.mongodb.4.4.name}:latest
16+
17+
# Docker container images - Redis
18+
docker.java.main.redis.6.name=springci/spring-data-openjdk8-with-redis-6.2
19+
docker.java.lts.redis.6.name=springci/spring-data-openjdk17-with-redis-6.2
20+
21+
docker.java.main.redis.6.image=${docker.java.main.redis.6.name}:latest
22+
docker.java.lts.redis.6.image=${docker.java.lts.redis.6.name}:latest
23+
24+
# Docker container images - Cassandra
25+
docker.java.main.cassandra.3.name=springci/spring-data-openjdk8-cassandra-3.11
26+
docker.java.next.cassandra.3.name=springci/spring-data-openjdk11-8-cassandra-3.11
27+
docker.java.lts.cassandra.3.name=springci/spring-data-openjdk17-8-cassandra-3.11
28+
29+
docker.java.main.cassandra.3.image=${docker.java.main.cassandra.3.name}:latest
30+
docker.java.next.cassandra.3.image=${docker.java.next.cassandra.3.name}:latest
31+
docker.java.lts.cassandra.3.image=${docker.java.lts.cassandra.3.name}:latest
32+
33+
34+
# Docker environment settings
35+
docker.java.inside.basic=-v $HOME:/tmp/jenkins-home
36+
docker.java.inside.docker=-u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v $HOME:/tmp/jenkins-home
37+
38+

0 commit comments

Comments
 (0)