Skip to content

Commit 05e4c19

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 #1214.
1 parent 07f3a91 commit 05e4c19

File tree

2 files changed

+51
-7
lines changed

2 files changed

+51
-7
lines changed

Jenkinsfile

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

@@ -23,7 +29,7 @@ pipeline {
2329

2430
steps {
2531
script {
26-
def image = docker.build("springci/spring-data-openjdk8-cassandra-3.11", "ci/openjdk8-cassandra-3.11/")
32+
def image = docker.build(p['docker.java.main.cassandra.3.name'], "ci/openjdk8-cassandra-3.11/")
2733
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
2834
image.push()
2935
}
@@ -39,7 +45,7 @@ pipeline {
3945

4046
steps {
4147
script {
42-
def image = docker.build("springci/spring-data-openjdk11-8-cassandra-3.11", "ci/openjdk11-8-cassandra-3.11/")
48+
def image = docker.build(p['docker.java.next.cassandra.3.name'], "ci/openjdk11-8-cassandra-3.11/")
4349
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
4450
image.push()
4551
}
@@ -55,7 +61,7 @@ pipeline {
5561

5662
steps {
5763
script {
58-
def image = docker.build("springci/spring-data-openjdk17-8-cassandra-3.11", "ci/openjdk17-8-cassandra-3.11/")
64+
def image = docker.build(p['docker.java.lts.cassandra.3.name'], "ci/openjdk17-8-cassandra-3.11/")
5965
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
6066
image.push()
6167
}
@@ -83,7 +89,7 @@ pipeline {
8389
steps {
8490
script {
8591
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
86-
docker.image('springci/spring-data-openjdk8-cassandra-3.11:latest').inside('-v $HOME:/tmp/jenkins-home') {
92+
docker.image(p['docker.java.main.cassandra.3.image']).inside(p['docker.java.inside.basic']) {
8793
sh 'mkdir -p /tmp/jenkins-home'
8894
sh 'JAVA_HOME=/opt/java/openjdk /opt/cassandra/bin/cassandra -R &'
8995
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,external-cassandra clean dependency:list verify -Dsort -U -B'
@@ -113,7 +119,7 @@ pipeline {
113119
steps {
114120
script {
115121
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
116-
docker.image('springci/spring-data-openjdk11-8-cassandra-3.11:latest').inside('-v $HOME:/tmp/jenkins-home') {
122+
docker.image(p['docker.java.next.cassandra.3.image']).inside(p['docker.java.inside.basic']) {
117123
sh 'mkdir -p /tmp/jenkins-home'
118124
sh 'JAVA_HOME=/opt/java/openjdk8 /opt/cassandra/bin/cassandra -R &'
119125
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,external-cassandra,java11 clean dependency:list verify -Dsort -U -B'
@@ -133,7 +139,7 @@ pipeline {
133139
steps {
134140
script {
135141
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
136-
docker.image('springci/spring-data-openjdk17-8-cassandra-3.11:latest').inside('-v $HOME:/tmp/jenkins-home') {
142+
docker.image(p['docker.java.lts.cassandra.3.image']).inside(p['docker.java.inside.basic']) {
137143
sh 'mkdir -p /tmp/jenkins-home'
138144
sh 'JAVA_HOME=/opt/java/openjdk8 /opt/cassandra/bin/cassandra -R &'
139145
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,external-cassandra,java11 clean dependency:list verify -Dsort -U -B'
@@ -164,7 +170,7 @@ pipeline {
164170
steps {
165171
script {
166172
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
167-
docker.image('adoptopenjdk/openjdk8:latest').inside('-v $HOME:/tmp/jenkins-home') {
173+
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) {
168174
sh 'mkdir -p /tmp/jenkins-home'
169175
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory ' +
170176
'-Dartifactory.server=https://repo.spring.io ' +

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)