Skip to content

Commit 4c49923

Browse files
committed
Externalize build properties.
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 #2245.
1 parent be616a5 commit 4c49923

File tree

2 files changed

+49
-5
lines changed

2 files changed

+49
-5
lines changed

Jenkinsfile

Lines changed: 11 additions & 5 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

@@ -26,7 +32,7 @@ pipeline {
2632

2733
steps {
2834
script {
29-
def image = docker.build("springci/spring-data-openjdk8-with-redis-6.2", "-f ci/openjdk8-redis-6.2/Dockerfile .")
35+
def image = docker.build(p['docker.java.main.redis.6.name'], "-f ci/openjdk8-redis-6.2/Dockerfile .")
3036
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
3137
image.push()
3238
}
@@ -45,7 +51,7 @@ pipeline {
4551

4652
steps {
4753
script {
48-
def image = docker.build("springci/spring-data-openjdk17-with-redis-6.2", "-f ci/openjdk17-redis-6.2/Dockerfile .")
54+
def image = docker.build(p['docker.java.lts.redis.6.name'], "-f ci/openjdk17-redis-6.2/Dockerfile .")
4955
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
5056
image.push()
5157
}
@@ -73,7 +79,7 @@ pipeline {
7379
steps {
7480
script {
7581
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
76-
docker.image('springci/spring-data-openjdk8-with-redis-6.2:latest').inside('-v $HOME:/tmp/jenkins-home') {
82+
docker.image(p['docker.java.main.redis.6.image']).inside(p['docker.java.inside.basic']) {
7783
sh 'PROFILE=none LONG_TESTS=true ci/test.sh'
7884
}
7985
}
@@ -101,7 +107,7 @@ pipeline {
101107
steps {
102108
script {
103109
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
104-
docker.image('springci/spring-data-openjdk17-with-redis-6.2:latest').inside('-v $HOME:/tmp/jenkins-home') {
110+
docker.image(p['docker.java.lts.redis.6.image']).inside(p['docker.java.inside.basic']) {
105111
sh 'PROFILE=java11 ci/test.sh'
106112
}
107113
}
@@ -131,7 +137,7 @@ pipeline {
131137
steps {
132138
script {
133139
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
134-
docker.image('adoptopenjdk/openjdk8:latest').inside('-v $HOME:/tmp/jenkins-home') {
140+
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) {
135141
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory ' +
136142
'-Dartifactory.server=https://repo.spring.io ' +
137143
"-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)