1
+ def p = [:]
2
+ node {
3
+ checkout scm
4
+ p = readProperties interpolate : true , file : ' ci/pipeline.properties'
5
+ }
6
+
1
7
pipeline {
2
8
agent none
3
9
@@ -14,64 +20,76 @@ pipeline {
14
20
stages {
15
21
stage(" Docker images" ) {
16
22
parallel {
17
- stage(' Publish JDK 8 + MongoDB 5 .0' ) {
23
+ stage(' Publish JDK (main) + MongoDB 4 .0' ) {
18
24
when {
19
- changeset " ci/openjdk8-mongodb-5.0/**"
25
+ anyOf {
26
+ changeset " ci/openjdk8-mongodb-4.0/**"
27
+ changeset " ci/pipeline.properties"
28
+ }
20
29
}
21
30
agent { label ' data' }
22
31
options { timeout(time : 30 , unit : ' MINUTES' ) }
23
32
24
33
steps {
25
34
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:jdk8" , " --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()
30
38
}
31
39
}
32
40
}
33
- stage(' Publish JDK 8 + MongoDB 4.0' ) {
41
+ }
42
+ stage(' Publish JDK (main) + MongoDB 4.4' ) {
34
43
when {
35
- changeset " ci/openjdk8-mongodb-4.0/**"
44
+ anyOf {
45
+ changeset " ci/openjdk8-mongodb-4.4/**"
46
+ changeset " ci/pipeline.properties"
47
+ }
36
48
}
37
49
agent { label ' data' }
38
50
options { timeout(time : 30 , unit : ' MINUTES' ) }
39
51
40
52
steps {
41
53
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:jdk8 " , " --build-arg BASE= ${ p['docker.java.main.image'] } --build-arg MONGODB= ${ p['docker.mongodb.4.4.version'] } ci/openjdk8-mongodb-4.4 /" )
43
55
docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
44
56
image. push()
45
57
}
46
58
}
47
59
}
48
60
}
49
- stage(' Publish JDK 8 + MongoDB 4.4 ' ) {
61
+ stage(' Publish JDK (main) + MongoDB 5.0 ' ) {
50
62
when {
51
- changeset " ci/openjdk8-mongodb-4.4/**"
63
+ anyOf {
64
+ changeset " ci/openjdk8-mongodb-5.0/**"
65
+ changeset " ci/pipeline.properties"
66
+ }
52
67
}
53
68
agent { label ' data' }
54
69
options { timeout(time : 30 , unit : ' MINUTES' ) }
55
70
56
71
steps {
57
72
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:jdk8 " , " --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' ) {
66
81
when {
67
- changeset " ci/openjdk16-mongodb-4.4/**"
82
+ anyOf {
83
+ changeset " ci/openjdk16-mongodb-4.4/**"
84
+ changeset " ci/pipeline.properties"
85
+ }
68
86
}
69
87
agent { label ' data' }
70
88
options { timeout(time : 30 , unit : ' MINUTES' ) }
71
89
72
90
steps {
73
91
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:jdk17 " , " --build-arg BASE= ${ p['docker.java.lts.image'] } --build-arg MONGODB= ${ p['docker.mongodb.4.4.version'] } ci/openjdk16-mongodb-4.4/" )
75
93
docker. withRegistry(' ' , ' hub.docker.com-springbuildmaster' ) {
76
94
image. push()
77
95
}
@@ -81,7 +99,7 @@ pipeline {
81
99
}
82
100
}
83
101
84
- stage(" test: baseline (jdk8 )" ) {
102
+ stage(" test: baseline (main )" ) {
85
103
when {
86
104
beforeAgent(true )
87
105
anyOf {
@@ -99,7 +117,7 @@ pipeline {
99
117
steps {
100
118
script {
101
119
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:jdk8 " ). inside(p[ ' docker.java.inside.basic ' ] ) {
103
121
sh ' mkdir -p /tmp/mongodb/db /tmp/mongodb/log'
104
122
sh ' mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
105
123
sh ' sleep 10'
@@ -121,31 +139,7 @@ pipeline {
121
139
}
122
140
}
123
141
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)" ) {
149
143
agent {
150
144
label ' data'
151
145
}
@@ -156,7 +150,7 @@ pipeline {
156
150
steps {
157
151
script {
158
152
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:jdk8 " ). inside(p[ ' docker.java.inside.basic ' ] ) {
160
154
sh ' mkdir -p /tmp/mongodb/db /tmp/mongodb/log'
161
155
sh ' mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
162
156
sh ' sleep 10'
@@ -169,7 +163,7 @@ pipeline {
169
163
}
170
164
}
171
165
172
- stage(" test: mongodb 5.0 (jdk8 )" ) {
166
+ stage(" test: mongodb 5.0 (main )" ) {
173
167
agent {
174
168
label ' data'
175
169
}
@@ -180,7 +174,7 @@ pipeline {
180
174
steps {
181
175
script {
182
176
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:jdk8 " ). inside(p[ ' docker.java.inside.basic ' ] ) {
184
178
sh ' mkdir -p /tmp/mongodb/db /tmp/mongodb/log'
185
179
sh ' mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
186
180
sh ' sleep 10'
@@ -193,7 +187,7 @@ pipeline {
193
187
}
194
188
}
195
189
196
- stage(" test: baseline (jdk16 )" ) {
190
+ stage(" test: baseline (LTS )" ) {
197
191
agent {
198
192
label ' data'
199
193
}
@@ -204,7 +198,8 @@ pipeline {
204
198
steps {
205
199
script {
206
200
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:jdk17" ). inside(p[' docker.java.inside.basic' ]) {
202
+ alwaysPull true
208
203
sh ' mkdir -p /tmp/mongodb/db /tmp/mongodb/log'
209
204
sh ' mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
210
205
sh ' sleep 10'
@@ -239,7 +234,7 @@ pipeline {
239
234
steps {
240
235
script {
241
236
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 ' ] ) {
243
238
sh ' MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -v'
244
239
sh ' MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory ' +
245
240
' -Dartifactory.server=https://repo.spring.io ' +
0 commit comments