@@ -191,14 +191,12 @@ pipeline {
191
191
.inject(0 ){ first , second -> second } // find the last entry, a.k.a. the most recent staging repository id
192
192
193
193
sh " ci/build-and-deploy-to-maven-central.sh ${ PROJECT_VERSION} ${ STAGING_REPOSITORY_ID} "
194
- // sh "ci/rc-close.sh ${STAGING_REPOSITORY_ID}"
194
+ sh " ci/rc-close.sh ${ STAGING_REPOSITORY_ID} "
195
195
// sh "ci/smoke-test-against-maven-central.sh ${PROJECT_VERSION} ${STAGING_REPOSITORY_ID}"
196
- // sh "ci/rc-release.sh ${STAGING_REPOSITORY_ID}"
197
196
198
- slackSend(
199
- color : (currentBuild. currentResult == ' SUCCESS' ) ? ' good' : ' danger' ,
200
- channel : ' #spring-ws' ,
201
- message : " Spring WS ${ PROJECT_VERSION} is released to Maven Central!" )
197
+ writeFile(file : ' staging_repository_id.txt' , text : " ${ STAGING_REPOSITORY_ID} " )
198
+ stash ' staging_repository_id.txt'
199
+
202
200
} else {
203
201
204
202
sh " ci/build-and-deploy-to-artifactory.sh ${ RELEASE_TYPE} "
@@ -218,6 +216,64 @@ pipeline {
218
216
}
219
217
}
220
218
219
+ stage(' Deploy (part 2)' ) {
220
+ agent any
221
+ options { timeout(time : 20 , unit : ' MINUTES' ) }
222
+ environment {
223
+ ARTIFACTORY = credentials(" ${ p['artifactory.credentials']} " )
224
+ SONATYPE = credentials(' oss-login' )
225
+ KEYRING = credentials(' spring-signing-secring.gpg' )
226
+ PASSPHRASE = credentials(' spring-gpg-passphrase' )
227
+ STAGING_PROFILE_ID = credentials(' spring-data-release-deployment-maven-central-staging-profile-id' )
228
+ GRADLE_ENTERPRISE_CACHE = credentials(" ${ p['gradle-enterprise-cache.credentials']} " )
229
+ GRADLE_ENTERPRISE_ACCESS_KEY = credentials(" ${ p['gradle-enterprise.access-key']} " )
230
+ }
231
+
232
+ steps {
233
+ script {
234
+
235
+ docker. image(" ${ p['docker.java.legacy.image']} " ). inside(p[' docker.java.inside.basic' ]) {
236
+ PROJECT_VERSION = sh(
237
+ script : " ci/version.sh" ,
238
+ returnStdout : true
239
+ ). trim()
240
+
241
+ echo " Releasing Spring WS ${ PROJECT_VERSION} ..."
242
+
243
+ if (PROJECT_VERSION . matches(/ .*-RC[0-9]+$/ ) || PROJECT_VERSION . matches(/ .*-M[0-9]+$/ )) {
244
+ RELEASE_TYPE = " milestone"
245
+ } else if (PROJECT_VERSION . endsWith(' SNAPSHOT' )) {
246
+ RELEASE_TYPE = ' snapshot'
247
+ } else if (PROJECT_VERSION . matches(/ .*\. [0-9]+$/ )) {
248
+ RELEASE_TYPE = ' release'
249
+ } else {
250
+ RELEASE_TYPE = ' snapshot'
251
+ }
252
+
253
+ echo " Release type: ${ RELEASE_TYPE} "
254
+
255
+ if (RELEASE_TYPE == ' release' ) {
256
+
257
+ unstash ' staging_repository_id.txt'
258
+
259
+ def STAGING_REPOSITORY_ID = readFile(file : ' staging_repository_id.txt' )
260
+
261
+ sh " ci/rc-release.sh ${ STAGING_REPOSITORY_ID} "
262
+
263
+ slackSend(
264
+ color : (currentBuild. currentResult == ' SUCCESS' ) ? ' good' : ' danger' ,
265
+ channel : ' #spring-ws' ,
266
+ message : " Spring WS ${ PROJECT_VERSION} is released to Maven Central!" )
267
+ } else {
268
+
269
+ echo " Since this is an Artifactory release, there is no 'part 2'."
270
+
271
+ }
272
+ }
273
+ }
274
+ }
275
+ }
276
+
221
277
stage(' Release documentation' ) {
222
278
when {
223
279
beforeAgent(true )
0 commit comments