@@ -8,7 +8,9 @@ import org.kie.jenkins.MavenStagingHelper
8
8
deployProperties = [:]
9
9
10
10
optaplannerRepository = 'incubator-kie-optaplanner'
11
+ optaplannerFolder = 'optaplanner'
11
12
quickstartsRepository = 'incubator-kie-optaplanner-quickstarts'
13
+ quickstartsFolder = 'quickstarts'
12
14
13
15
imageUtils = null
14
16
@@ -39,7 +41,7 @@ pipeline {
39
41
stage('Initialize') {
40
42
steps {
41
43
script {
42
- cleanWs()
44
+ cleanWs(disableDeferredWipeout: true )
43
45
44
46
if (params.DISPLAY_NAME) {
45
47
currentBuild.displayName = params.DISPLAY_NAME
@@ -75,8 +77,8 @@ pipeline {
75
77
stage('Clone repositories') {
76
78
steps {
77
79
script {
78
- checkoutRepo(optaplannerRepository)
79
- checkoutQuickstarts()
80
+ checkoutRepo(optaplannerRepository, optaplannerFolder )
81
+ checkoutQuickstarts(quickstartsFolder )
80
82
}
81
83
}
82
84
}
@@ -87,8 +89,8 @@ pipeline {
87
89
}
88
90
steps {
89
91
script {
90
- prepareForPR(optaplannerRepository )
91
- prepareForPR(quickstartsRepository )
92
+ prepareForPR(optaplannerFolder )
93
+ prepareForPR(quickstartsFolder )
92
94
}
93
95
}
94
96
}
@@ -112,13 +114,16 @@ pipeline {
112
114
stage('Build OptaPlanner') {
113
115
steps {
114
116
script {
115
- getOptaplannerMavenCommand()
116
- .withProperty('maven.test.failure.ignore', true)
117
- .withProperty('operator.image.build')
118
- .skipTests(params.SKIP_TESTS)
119
- .run('clean install')
117
+ configFileProvider([configFile(fileId: env.MAVEN_SETTINGS_CONFIG_FILE_ID, variable: 'MAVEN_SETTINGS_FILE')]){
118
+ getOptaplannerMavenCommand()
119
+ .withProperty('maven.test.failure.ignore', true)
120
+ .withProperty('operator.image.build')
121
+ .skipTests(params.SKIP_TESTS)
122
+ .withSettingsXmlFile(MAVEN_SETTINGS_FILE)
123
+ .run('clean install')
124
+ }
120
125
if (isRelease()) {
121
- updateAntoraYaml(optaplannerRepository )
126
+ updateAntoraYaml(optaplannerFolder )
122
127
}
123
128
}
124
129
}
@@ -135,10 +140,13 @@ pipeline {
135
140
stage('Build Quickstarts') {
136
141
steps {
137
142
script {
138
- getOptaplannerQuickstartsMavenCommand()
139
- .withProperty('maven.test.failure.ignore', true)
140
- .skipTests(params.SKIP_TESTS)
141
- .run('clean install')
143
+ configFileProvider([configFile(fileId: env.MAVEN_SETTINGS_CONFIG_FILE_ID, variable: 'MAVEN_SETTINGS_FILE')]){
144
+ getOptaplannerQuickstartsMavenCommand()
145
+ .withProperty('maven.test.failure.ignore', true)
146
+ .skipTests(params.SKIP_TESTS)
147
+ .withSettingsXmlFile(MAVEN_SETTINGS_FILE)
148
+ .run('clean install')
149
+ }
142
150
}
143
151
}
144
152
post {
@@ -201,8 +209,8 @@ pipeline {
201
209
}
202
210
steps {
203
211
script {
204
- commitAndCreatePR(optaplannerRepository, getBuildBranch())
205
- commitAndCreatePR(quickstartsRepository, getQuickStartsBranch())
212
+ commitAndCreatePR(optaplannerFolder, optaplannerRepository, getBuildBranch())
213
+ commitAndCreatePR(quickstartsFolder, quickstartsRepository, getQuickStartsBranch())
206
214
}
207
215
}
208
216
post {
@@ -246,8 +254,7 @@ pipeline {
246
254
}
247
255
cleanup {
248
256
script {
249
- // Clean also docker in case of usage of testcontainers lib
250
- util.cleanNode('docker')
257
+ util.cleanNode()
251
258
}
252
259
}
253
260
}
@@ -269,10 +276,10 @@ List getIntegrationTestProfiles() {
269
276
void updateQuickstartsVersions() {
270
277
maven.mvnSetVersionProperty(getOptaplannerQuickstartsMavenCommand(), 'version.org.optaplanner', getProjectVersion())
271
278
maven.mvnVersionsUpdateParentAndChildModules(getOptaplannerQuickstartsMavenCommand(), getProjectVersion(), !isRelease())
272
- gradleVersionsUpdate(quickstartsRepository , getProjectVersion())
279
+ gradleVersionsUpdate(quickstartsFolder , getProjectVersion())
273
280
274
281
if (isRelease()) {
275
- dir(quickstartsRepository ) {
282
+ dir(quickstartsFolder ) {
276
283
// TODO: Remove the exclusion after the kubernetes demo is migrated to 9.
277
284
assert !sh(script:
278
285
'grep -Rn "SNAPSHOT" --include={pom.xml,build.gradle} --exclude-dir=kubernetes | ' +
@@ -281,7 +288,7 @@ void updateQuickstartsVersions() {
281
288
}
282
289
}
283
290
if (isCreatePr()) {
284
- dir(quickstartsRepository ) {
291
+ dir(quickstartsFolder ) {
285
292
// TODO: Remove the exclusion after the kubernetes demo is migrated to 9.
286
293
assert !sh(script:
287
294
'grep -Rn "SNAPSHOT" --include={pom.xml,build.gradle} --exclude-dir=kubernetes | ' +
@@ -291,8 +298,8 @@ void updateQuickstartsVersions() {
291
298
}
292
299
}
293
300
294
- void gradleVersionsUpdate(String repo , String newVersion) {
295
- dir(repo ) {
301
+ void gradleVersionsUpdate(String folder , String newVersion) {
302
+ dir(folder ) {
296
303
sh "find . -name build.gradle -exec sed -i -E 's/def optaplannerVersion = \"[^\"\\s]+\"/def optaplannerVersion = \"${newVersion}\"/' {} \\;"
297
304
}
298
305
}
@@ -330,14 +337,14 @@ String getFallbackBranch(String repo) {
330
337
return repositoryScm ? params.PR_TARGET_BRANCH : 'main'
331
338
}
332
339
333
- void prepareForPR(String repo ) {
334
- dir(repo ) {
340
+ void prepareForPR(String folder ) {
341
+ dir(folder ) {
335
342
githubscm.createBranch(getPRBranch())
336
343
}
337
344
}
338
345
339
- void commitAndCreatePR(String repo, String buildBranch) {
340
- dir(repo ) {
346
+ void commitAndCreatePR(String folder, String repo, String buildBranch) {
347
+ dir(folder ) {
341
348
def commitMsg = "[${buildBranch}] Update project version to ${getProjectVersion()}"
342
349
def prBody = "Generated by build ${BUILD_TAG}: ${BUILD_URL}."
343
350
if (isRelease()) {
@@ -358,38 +365,41 @@ void commitAndCreatePR(String repo, String buildBranch) {
358
365
}
359
366
}
360
367
361
- void commitAndCreatePRIgnoringNpmRegistry(String repo, String buildBranch) {
362
- dir(repo ) {
368
+ void commitAndCreatePRIgnoringNpmRegistry(String folder, String repo, String buildBranch) {
369
+ dir(folder ) {
363
370
sh 'sed \'s;repository.engineering.redhat.com/nexus/repository/;;\' -i */package-lock.json'
364
371
sh 'git add */package-lock.json'
365
372
}
366
- commitAndCreatePR(repo, buildBranch)
373
+ commitAndCreatePR(folder, repo, buildBranch)
367
374
}
368
375
369
376
MavenCommand getMavenDefaultCommand() {
370
- MavenCommand mvnCmd = new MavenCommand(this, ['-fae', '-ntp']).withSettingsXmlId(env.MAVEN_SETTINGS_CONFIG_FILE_ID)
377
+ MavenCommand mvnCmd = new MavenCommand(this, ['-fae', '-ntp'])
371
378
if (env.MAVEN_DEPENDENCIES_REPOSITORY) {
372
379
mvnCmd.withDependencyRepositoryInSettings('deps-repo', env.MAVEN_DEPENDENCIES_REPOSITORY)
373
380
}
374
381
return mvnCmd
375
382
}
376
383
377
384
MavenCommand getOptaplannerMavenCommand() {
378
- return getMavenDefaultCommand().inDirectory(optaplannerRepository ).withProperty('full')
385
+ return getMavenDefaultCommand().inDirectory(optaplannerFolder ).withProperty('full')
379
386
}
380
387
381
388
MavenCommand getOptaplannerQuickstartsMavenCommand() {
382
- return getMavenDefaultCommand().inDirectory(quickstartsRepository ).withProperty('full')
389
+ return getMavenDefaultCommand().inDirectory(quickstartsFolder ).withProperty('full')
383
390
}
384
391
385
392
/**
386
393
* Builds the parent modules and the BOM so that project depending on these artifacts can resolve.
387
394
*/
388
395
void mavenCleanInstallOptaPlannerParents() {
389
- getOptaplannerMavenCommand()
390
- .skipTests(true)
391
- .withOptions(['-U', '-pl org.optaplanner:optaplanner-build-parent,org.optaplanner:optaplanner-bom', '-am'])
392
- .run('clean install')
396
+ configFileProvider([configFile(fileId: env.MAVEN_SETTINGS_CONFIG_FILE_ID, variable: 'MAVEN_SETTINGS_FILE')]){
397
+ getOptaplannerMavenCommand()
398
+ .skipTests(true)
399
+ .withOptions(['-U', '-pl org.optaplanner:optaplanner-build-parent,org.optaplanner:optaplanner-bom', '-am'])
400
+ .withSettingsXmlFile(MAVEN_SETTINGS_FILE)
401
+ .run('clean install')
402
+ }
393
403
}
394
404
395
405
void runMavenDeploy(MavenCommand mvnCmd, String localDeploymentId = '') {
@@ -401,7 +411,12 @@ void runMavenDeploy(MavenCommand mvnCmd, String localDeploymentId = '') {
401
411
mvnCmd.withDeployRepository(env.MAVEN_DEPLOY_REPOSITORY)
402
412
}
403
413
404
- mvnCmd.skipTests(true).run('clean deploy')
414
+ configFileProvider([configFile(fileId: env.MAVEN_SETTINGS_CONFIG_FILE_ID, variable: 'MAVEN_SETTINGS_FILE')]){
415
+ mvnCmd
416
+ .withSettingsXmlFile(MAVEN_SETTINGS_FILE)
417
+ .skipTests(true)
418
+ .run('clean deploy')
419
+ }
405
420
}
406
421
407
422
String getMavenRepoZipUrl() {
@@ -427,15 +442,15 @@ String getLocalDeploymentFolder(String localDeployId) {
427
442
// Getters and Setters of params/properties
428
443
429
444
boolean isSpecificArtifactsUpload() {
430
- return env.MAVEN_DEPLOY_REPOSITORY && env.MAVEN_REPO_CREDS_ID
445
+ return env.MAVEN_DEPLOY_REPOSITORY && env.MAVEN_REPO_CREDS_ID && !isDeployDisabled()
431
446
}
432
447
433
448
boolean shouldStageArtifacts() {
434
- return !isSpecificArtifactsUpload() && isRelease() && !env.MAVEN_DEPLOY_REPOSITORY
449
+ return !isSpecificArtifactsUpload() && isRelease() && !env.MAVEN_DEPLOY_REPOSITORY && !isDeployDisabled()
435
450
}
436
451
437
452
boolean shouldDeployToRepository() {
438
- return env.MAVEN_DEPLOY_REPOSITORY || isNotTestingBuild()
453
+ return ( env.MAVEN_DEPLOY_REPOSITORY || isNotTestingBuild()) && !isDeployDisabled ()
439
454
}
440
455
441
456
boolean isNotTestingBuild() {
@@ -542,3 +557,7 @@ boolean isStream8() {
542
557
boolean isStream9() {
543
558
return env.OPTAPLANNER_LATEST_STREAM == '9'
544
559
}
560
+
561
+ boolean isDeployDisabled() {
562
+ return env.DISABLE_DEPLOY.toBoolean()
563
+ }
0 commit comments