我有3份工作:
第二个工作的构建应该比第一个工作的最新构建大一个BUILD_NUMBER,当第二个工作触发第三个工作时,他应该具有与第二个相同的BUILD_NUMBER。当手动触发第三个工作时,他的BUILD_NUMBER应该比第一个工作的最新版本大一号。
我希望我写的内容是可以理解的; P
我在groovy中编写了脚本:
import jenkins.model.*
jenkinsInstance = jenkins.model.Jenkins.instance
searchedJobName = "^synchronize_build_numbers.*"
jobName = "synchronize_build_numbers_qa"
allItems = jenkinsInstance.items
if ("${JOB_NAME}" == jobName) {
chosenJob = allItems.findAll{ job -> job.name.matches("synchronize_build_numbers_release") }
chosenJob.each{ job -> job.nextBuildNumber = "${BUILD_NUMBER}".toInteger() }
} else {
chosenJobs = allItems.findAll{ job -> job.name.matches(searchedJobName) }
buildNumber = chosenJobs.collect{ job -> job.nextBuildNumber }.max()
chosenJobs.each{ job -> job.nextBuildNumber = buildNumber }
}
return [:]
它有效,但我想让这个脚本更具普遍性。