INFRA-542: Allow change of the default Nexus IQ stage parameter (#6586)

* adds a parameter to a build
* default value of the parameter is the same as original stage parameter
This commit is contained in:
Waldemar Żurowski 2020-08-06 20:20:19 +01:00 committed by GitHub
parent d19c6dddaf
commit e524f41738
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 6 deletions

View File

@ -20,6 +20,19 @@ killAllExistingBuildsForJob(env.JOB_NAME, env.BUILD_NUMBER.toInteger())
*/ */
def nexusIqStage = "build" def nexusIqStage = "build"
/**
* make sure calculated default value of NexusIQ stage is first in the list
* thus making it default for the `choice` parameter
*/
def nexusIqStageChoices = [nexusDefaultIqStage].plus(
[
'develop',
'build',
'stage-release',
'release',
'operate'
].minus([nexusDefaultIqStage]))
pipeline { pipeline {
agent { label 'standard' } agent { label 'standard' }
@ -59,7 +72,7 @@ pipeline {
failBuildOnNetworkError: false, failBuildOnNetworkError: false,
iqApplication: selectedApplication(nexusAppId), // application *has* to exist before a build starts! iqApplication: selectedApplication(nexusAppId), // application *has* to exist before a build starts!
iqScanPatterns: [[scanPattern: 'node/capsule/build/libs/corda*.jar']], iqScanPatterns: [[scanPattern: 'node/capsule/build/libs/corda*.jar']],
iqStage: nexusIqStage iqStage: params.nexusIqStage
) )
} }
} }

View File

@ -25,15 +25,29 @@ boolean isInternalRelease = (env.TAG_NAME =~ /^internal-release-.*$/)
** * stage-release: for release candidates and for health checks ** * stage-release: for release candidates and for health checks
** * operate: for final release ** * operate: for final release
*/ */
def nexusIqStage = "build"
def nexusDefaultIqStage = "build"
if (isReleaseTag) { if (isReleaseTag) {
switch (env.TAG_NAME) { switch (env.TAG_NAME) {
case ~/.*-RC\d+(-.*)?/: nexusIqStage = "stage-release"; break; case ~/.*-RC\d+(-.*)?/: nexusDefaultIqStage = "stage-release"; break;
case ~/.*-HC\d+(-.*)?/: nexusIqStage = "stage-release"; break; case ~/.*-HC\d+(-.*)?/: nexusDefaultIqStage = "stage-release"; break;
default: nexusIqStage = "release" default: nexusDefaultIqStage = "release"
} }
} }
/**
* make sure calculated default value of NexusIQ stage is first in the list
* thus making it default for the `choice` parameter
*/
def nexusIqStageChoices = [nexusDefaultIqStage].plus(
[
'develop',
'build',
'stage-release',
'release',
'operate'
].minus([nexusDefaultIqStage]))
pipeline { pipeline {
agent { label 'k8s' } agent { label 'k8s' }
options { options {
@ -42,6 +56,10 @@ pipeline {
buildDiscarder(logRotator(daysToKeepStr: '14', artifactDaysToKeepStr: '14')) buildDiscarder(logRotator(daysToKeepStr: '14', artifactDaysToKeepStr: '14'))
} }
parameters {
choice choices: nexusIqStageChoices, description: 'NexusIQ stage for code evaluation', name: 'nexusIqStage'
}
environment { environment {
DOCKER_TAG_TO_USE = "${env.GIT_COMMIT.subSequence(0, 8)}" DOCKER_TAG_TO_USE = "${env.GIT_COMMIT.subSequence(0, 8)}"
DOCKER_URL = "https://index.docker.io/v1/" DOCKER_URL = "https://index.docker.io/v1/"
@ -67,7 +85,7 @@ pipeline {
failBuildOnNetworkError: false, failBuildOnNetworkError: false,
iqApplication: selectedApplication(nexusAppId), // application *has* to exist before a build starts! iqApplication: selectedApplication(nexusAppId), // application *has* to exist before a build starts!
iqScanPatterns: [[scanPattern: 'node/capsule/build/libs/corda*.jar']], iqScanPatterns: [[scanPattern: 'node/capsule/build/libs/corda*.jar']],
iqStage: nexusIqStage iqStage: params.nexusIqStage
) )
} }
} }