From e524f417389745634a8a3d9dc26286a6d2d8353e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Waldemar=20=C5=BBurowski?= <45210402+wzur-r3@users.noreply.github.com> Date: Thu, 6 Aug 2020 20:20:19 +0100 Subject: [PATCH] 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 --- .ci/dev/publish-branch/Jenkinsfile.nightly | 15 +++++++++++- .ci/dev/regression/Jenkinsfile | 28 ++++++++++++++++++---- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/.ci/dev/publish-branch/Jenkinsfile.nightly b/.ci/dev/publish-branch/Jenkinsfile.nightly index 178f134d9f..308d475dcb 100644 --- a/.ci/dev/publish-branch/Jenkinsfile.nightly +++ b/.ci/dev/publish-branch/Jenkinsfile.nightly @@ -20,6 +20,19 @@ killAllExistingBuildsForJob(env.JOB_NAME, env.BUILD_NUMBER.toInteger()) */ 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 { agent { label 'standard' } @@ -59,7 +72,7 @@ pipeline { failBuildOnNetworkError: false, iqApplication: selectedApplication(nexusAppId), // application *has* to exist before a build starts! iqScanPatterns: [[scanPattern: 'node/capsule/build/libs/corda*.jar']], - iqStage: nexusIqStage + iqStage: params.nexusIqStage ) } } diff --git a/.ci/dev/regression/Jenkinsfile b/.ci/dev/regression/Jenkinsfile index 32676b0cd7..fdd7c433be 100644 --- a/.ci/dev/regression/Jenkinsfile +++ b/.ci/dev/regression/Jenkinsfile @@ -25,15 +25,29 @@ boolean isInternalRelease = (env.TAG_NAME =~ /^internal-release-.*$/) ** * stage-release: for release candidates and for health checks ** * operate: for final release */ -def nexusIqStage = "build" + +def nexusDefaultIqStage = "build" if (isReleaseTag) { switch (env.TAG_NAME) { - case ~/.*-RC\d+(-.*)?/: nexusIqStage = "stage-release"; break; - case ~/.*-HC\d+(-.*)?/: nexusIqStage = "stage-release"; break; - default: nexusIqStage = "release" + case ~/.*-RC\d+(-.*)?/: nexusDefaultIqStage = "stage-release"; break; + case ~/.*-HC\d+(-.*)?/: nexusDefaultIqStage = "stage-release"; break; + 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 { agent { label 'k8s' } options { @@ -42,6 +56,10 @@ pipeline { buildDiscarder(logRotator(daysToKeepStr: '14', artifactDaysToKeepStr: '14')) } + parameters { + choice choices: nexusIqStageChoices, description: 'NexusIQ stage for code evaluation', name: 'nexusIqStage' + } + environment { DOCKER_TAG_TO_USE = "${env.GIT_COMMIT.subSequence(0, 8)}" DOCKER_URL = "https://index.docker.io/v1/" @@ -67,7 +85,7 @@ pipeline { failBuildOnNetworkError: false, iqApplication: selectedApplication(nexusAppId), // application *has* to exist before a build starts! iqScanPatterns: [[scanPattern: 'node/capsule/build/libs/corda*.jar']], - iqStage: nexusIqStage + iqStage: params.nexusIqStage ) } }