diff --git a/.ci/dev/publish-branch/Jenkinsfile.nightly b/.ci/dev/publish-branch/Jenkinsfile.nightly index 471825bd2d..df7f178cac 100644 --- a/.ci/dev/publish-branch/Jenkinsfile.nightly +++ b/.ci/dev/publish-branch/Jenkinsfile.nightly @@ -18,7 +18,20 @@ killAllExistingBuildsForJob(env.JOB_NAME, env.BUILD_NUMBER.toInteger()) ** calculate the stage for NexusIQ evaluation ** * build for snapshots */ -def nexusIqStage = "build" +def nexusDefaultIqStage = "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' } @@ -31,6 +44,10 @@ pipeline { buildDiscarder(logRotator(daysToKeepStr: '14', artifactDaysToKeepStr: '14')) } + parameters { + choice choices: nexusIqStageChoices, description: 'NexusIQ stage for code evaluation', name: 'nexusIqStage' + } + triggers { cron '@midnight' } @@ -53,13 +70,13 @@ pipeline { def version = sh (returnStdout: true, script: "grep ^version: version-properties | sed -e 's/^version: \\([0-9]\\+\\.[0-9]\\+\\).*\$/\\1/'").trim() def groupId = sh (returnStdout: true, script: "grep ^group: version-properties | sed -e 's/^group: //'").trim() def artifactId = 'corda' - nexusAppId = "jenkins-${groupId}-${artifactId}-${version}" + nexusAppId = "${groupId}-${artifactId}-${version}" } nexusPolicyEvaluation ( 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 63b78efe70..642eb8ade9 100644 --- a/.ci/dev/regression/Jenkinsfile +++ b/.ci/dev/regression/Jenkinsfile @@ -25,15 +25,28 @@ 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 +55,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/" @@ -63,13 +80,13 @@ pipeline { def version = sh (returnStdout: true, script: "grep ^version: version-properties | sed -e 's/^version: \\([0-9]\\+\\.[0-9]\\+\\).*\$/\\1/'").trim() def groupId = sh (returnStdout: true, script: "grep ^group: version-properties | sed -e 's/^group: //'").trim() def artifactId = 'corda' - nexusAppId = "jenkins-${groupId}-${artifactId}-${version}" + nexusAppId = "${groupId}-${artifactId}-${version}" } nexusPolicyEvaluation ( 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 ) } }