@@ -7,7 +7,7 @@ Therefore, both jobs have to share a 'workspace', and the output of the first jo
77
88pipeline {
99 options {
10- skipDefaultCheckout( )
10+ checkoutToSubdirectory('git-repo' )
1111 timestamps()
1212 timeout(time: 45, unit: 'MINUTES')
1313 buildDiscarder(logRotator(numToKeepStr:'10'))
@@ -35,20 +35,20 @@ pipeline {
3535 stage('Process Input') {
3636 steps {
3737 script {
38+ // Always load the script from the very same state this pipeline is loaded (to ensure consistency)
39+ utilities = load 'git-repo/JenkinsJobs/shared/utilities.groovy'
40+
3841 if (!params.releaseBuildID) {
3942 error "Required parameter 'releaseBuildID' is not defined."
4043 }
4144 assignEnvVariable('RELEASE_BUILD_ID', params.releaseBuildID)
42- def idMatcher = env.RELEASE_BUILD_ID =~ /(?<type>[SR])-(?<major>\d+)\.(?<minor>\d+)(\.\d+)?(?<checkpoint>(M|RC)\d+[a-z]?)?-(?<date>\d{8})(?<time>\d{4})/
43- if (!idMatcher.matches()) {
44- error "releaseID: ${RELEASE_BUILD_ID}, does not match the expected pattern."
45- }
46- assignEnvVariable('RELEASE_TYPE', idMatcher.group('type'))
47- assignEnvVariable('RELEASE_VERSION_MAJOR', idMatcher.group('major'))
48- assignEnvVariable('RELEASE_VERSION_MINOR', idMatcher.group('minor'))
49- assignEnvVariable('CHECKPOINT', idMatcher.group('checkpoint') ?: 'GA')
50- def buildId = "I${idMatcher.group('date')}-${idMatcher.group('time')}"
51- idMatcher = null // release matcher as it's not serializable
45+ def build = utilities.matchBuildIdentifier("${RELEASE_BUILD_ID}", null, {})
46+
47+ assignEnvVariable('RELEASE_TYPE', build.type)
48+ assignEnvVariable('RELEASE_VERSION_MAJOR', build.major)
49+ assignEnvVariable('RELEASE_VERSION_MINOR', build.minor)
50+ assignEnvVariable('CHECKPOINT', build.checkpoint ?: 'GA')
51+ def buildId = "I${build.date}-${build.time}"
5252
5353 if (env.RELEASE_TYPE == 'R') {
5454 assignEnvVariable('REPOSITORY_PATH', "${RELEASE_VERSION_MAJOR}.${RELEASE_VERSION_MINOR}/${RELEASE_BUILD_ID}")
@@ -175,8 +175,10 @@ pipeline {
175175 }
176176}
177177
178+ @groovy.transform.Field
179+ def utilities = null
180+
178181@NonCPS
179182def assignEnvVariable(String name, String value) {
180- env."${name}" = value
181- println("${name}=${value}")
183+ utilities.assignEnvVariable(name, value)
182184}
0 commit comments