1+ def p = [:]
2+ node {
3+ checkout scm
4+ p = readProperties interpolate : true , file : ' ci/pipeline.properties'
5+ }
6+
17pipeline {
28 agent none
39
@@ -14,64 +20,76 @@ pipeline {
1420 stages {
1521 stage(" Docker images" ) {
1622 parallel {
17- stage(' Publish JDK 8 + MongoDB 5 .0' ) {
23+ stage(' Publish JDK (main) + MongoDB 4 .0' ) {
1824 when {
19- changeset " ci/openjdk8-mongodb-5.0/**"
25+ anyOf {
26+ changeset " ci/openjdk8-mongodb-4.0/**"
27+ changeset " ci/pipeline.properties"
28+ }
2029 }
2130 agent { label ' data' }
2231 options { timeout(time : 30 , unit : ' MINUTES' ) }
2332
2433 steps {
2534 script {
26- def image = docker. build(" springci/spring-data-openjdk8-with-mongodb-5.0.0" , " ci/openjdk8-mongodb-5.0/" )
27- docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
28- image. push()
29- }
35+ def image = docker. build(" springci/spring-data-with-mongodb-4.0:${ p['java.main.tag']} " , " --build-arg BASE=${ p['docker.java.main.image']} --build-arg MONGODB=${ p['docker.mongodb.4.0.version']} ci/openjdk8-mongodb-4.0/" )
36+ docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
37+ image. push()
3038 }
3139 }
3240 }
33- stage(' Publish JDK 8 + MongoDB 4.0' ) {
41+ }
42+ stage(' Publish JDK (main) + MongoDB 4.4' ) {
3443 when {
35- changeset " ci/openjdk8-mongodb-4.0/**"
44+ anyOf {
45+ changeset " ci/openjdk8-mongodb-4.4/**"
46+ changeset " ci/pipeline.properties"
47+ }
3648 }
3749 agent { label ' data' }
3850 options { timeout(time : 30 , unit : ' MINUTES' ) }
3951
4052 steps {
4153 script {
42- def image = docker. build(" springci/spring-data-openjdk8- with-mongodb-4.0.23 " , " ci/openjdk8-mongodb-4.0 /" )
54+ def image = docker. build(" springci/spring-data-with-mongodb-4.4: ${ p['java.main.tag'] } " , " --build-arg BASE= ${ p['docker.java.main.image'] } --build-arg MONGODB= ${ p['docker.mongodb.4.4.version'] } ci/openjdk8-mongodb-4.4 /" )
4355 docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
4456 image. push()
4557 }
4658 }
4759 }
4860 }
49- stage(' Publish JDK 8 + MongoDB 4.4 ' ) {
61+ stage(' Publish JDK (main) + MongoDB 5.0 ' ) {
5062 when {
51- changeset " ci/openjdk8-mongodb-4.4/**"
63+ anyOf {
64+ changeset " ci/openjdk8-mongodb-5.0/**"
65+ changeset " ci/pipeline.properties"
66+ }
5267 }
5368 agent { label ' data' }
5469 options { timeout(time : 30 , unit : ' MINUTES' ) }
5570
5671 steps {
5772 script {
58- def image = docker. build(" springci/spring-data-openjdk8- with-mongodb-4.4.4 " , " ci/openjdk8-mongodb-4.4 /" )
59- docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
60- image. push()
61- }
62- }
63- }
64- }
65- stage(' Publish JDK 16 + MongoDB 4.4' ) {
73+ def image = docker. build(" springci/spring-data-with-mongodb-5.0: ${ p['java.main.tag'] } " , " --build-arg BASE= ${ p['docker.java.main.image'] } --build-arg MONGODB= ${ p['docker.mongodb.5.0.version'] } ci/openjdk8-mongodb-5.0 /" )
74+ docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
75+ image. push()
76+ }
77+ }
78+ }
79+ }
80+ stage(' Publish JDK (LTS) + MongoDB 4.4' ) {
6681 when {
67- changeset " ci/openjdk16-mongodb-4.4/**"
82+ anyOf {
83+ changeset " ci/openjdk17-mongodb-4.4/**"
84+ changeset " ci/pipeline.properties"
85+ }
6886 }
6987 agent { label ' data' }
7088 options { timeout(time : 30 , unit : ' MINUTES' ) }
7189
7290 steps {
7391 script {
74- def image = docker. build(" springci/spring-data-openjdk16- with-mongodb-4.4.4 " , " ci/openjdk16-mongodb-4.4/" )
92+ def image = docker. build(" springci/spring-data-with-mongodb-4.4: ${ p['java.lts.tag'] } " , " --build-arg BASE= ${ p['docker.java.lts.image'] } --build-arg MONGODB= ${ p['docker.mongodb.4.4.version'] } ci/openjdk16-mongodb-4.4/" )
7593 docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
7694 image. push()
7795 }
@@ -81,7 +99,7 @@ pipeline {
8199 }
82100 }
83101
84- stage(" test: baseline (jdk8 )" ) {
102+ stage(" test: baseline (main )" ) {
85103 when {
86104 beforeAgent(true )
87105 anyOf {
@@ -99,7 +117,7 @@ pipeline {
99117 steps {
100118 script {
101119 docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
102- docker. image(' springci/spring-data-openjdk8- with-mongodb-4.0.23:latest ' ). inside(' -v $HOME:/tmp/jenkins-home ' ) {
120+ docker. image(" springci/spring-data-with-mongodb-4.0: ${ p['java.main.tag'] } " ). inside(p[ ' docker.java.inside.basic ' ] ) {
103121 sh ' mkdir -p /tmp/mongodb/db /tmp/mongodb/log'
104122 sh ' mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
105123 sh ' sleep 10'
@@ -121,31 +139,7 @@ pipeline {
121139 }
122140 }
123141 parallel {
124- stage(" test: mongodb 4.0 (jdk8)" ) {
125- agent {
126- label ' data'
127- }
128- options { timeout(time : 30 , unit : ' MINUTES' ) }
129- environment {
130- ARTIFACTORY = credentials(' 02bd1690-b54f-4c9f-819d-a77cb7a9822c' )
131- }
132- steps {
133- script {
134- docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
135- docker. image(' springci/spring-data-openjdk8-with-mongodb-4.0.23:latest' ). inside(' -v $HOME:/tmp/jenkins-home' ) {
136- sh ' mkdir -p /tmp/mongodb/db /tmp/mongodb/log'
137- sh ' mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
138- sh ' sleep 10'
139- sh ' mongo --eval "rs.initiate({_id: \' rs0\' , members:[{_id: 0, host: \' 127.0.0.1:27017\' }]});"'
140- sh ' sleep 15'
141- sh ' MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml clean dependency:list test -Duser.name=jenkins -Dsort -U -B'
142- }
143- }
144- }
145- }
146- }
147-
148- stage(" test: mongodb 4.4 (jdk8)" ) {
142+ stage(" test: mongodb 4.4 (main)" ) {
149143 agent {
150144 label ' data'
151145 }
@@ -156,7 +150,7 @@ pipeline {
156150 steps {
157151 script {
158152 docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
159- docker. image(' springci/spring-data-openjdk8- with-mongodb-4.4.4:latest ' ). inside(' -v $HOME:/tmp/jenkins-home ' ) {
153+ docker. image(" springci/spring-data-with-mongodb-4.4: ${ p['java.main.tag'] } " ). inside(p[ ' docker.java.inside.basic ' ] ) {
160154 sh ' mkdir -p /tmp/mongodb/db /tmp/mongodb/log'
161155 sh ' mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
162156 sh ' sleep 10'
@@ -169,7 +163,7 @@ pipeline {
169163 }
170164 }
171165
172- stage(" test: mongodb 5.0 (jdk8 )" ) {
166+ stage(" test: mongodb 5.0 (main )" ) {
173167 agent {
174168 label ' data'
175169 }
@@ -180,7 +174,7 @@ pipeline {
180174 steps {
181175 script {
182176 docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
183- docker. image(' springci/spring-data-openjdk8- with-mongodb-5.0.0:latest ' ). inside(' -v $HOME:/tmp/jenkins-home ' ) {
177+ docker. image(" springci/spring-data-with-mongodb-5.0: ${ p['java.main.tag'] } " ). inside(p[ ' docker.java.inside.basic ' ] ) {
184178 sh ' mkdir -p /tmp/mongodb/db /tmp/mongodb/log'
185179 sh ' mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
186180 sh ' sleep 10'
@@ -193,7 +187,7 @@ pipeline {
193187 }
194188 }
195189
196- stage(" test: baseline (jdk16 )" ) {
190+ stage(" test: baseline (LTS )" ) {
197191 agent {
198192 label ' data'
199193 }
@@ -204,7 +198,8 @@ pipeline {
204198 steps {
205199 script {
206200 docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
207- docker. image(' springci/spring-data-openjdk16-with-mongodb-4.4.4:latest' ). inside(' -v $HOME:/tmp/jenkins-home' ) {
201+ docker. image(" springci/spring-data-with-mongodb-4.4:${ p['java.lts.tag']} " ). inside(p[' docker.java.inside.basic' ]) {
202+ alwaysPull true
208203 sh ' mkdir -p /tmp/mongodb/db /tmp/mongodb/log'
209204 sh ' mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
210205 sh ' sleep 10'
@@ -239,7 +234,7 @@ pipeline {
239234 steps {
240235 script {
241236 docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
242- docker. image(' adoptopenjdk/openjdk8:latest ' ). inside(' -v $HOME:/tmp/jenkins-home ' ) {
237+ docker. image(p[ ' docker.java.main.image ' ] ). inside(p[ ' docker.java.inside.basic ' ] ) {
243238 sh ' MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory ' +
244239 ' -Dartifactory.server=https://repo.spring.io ' +
245240 " -Dartifactory.username=${ ARTIFACTORY_USR} " +
0 commit comments