我正在将jenkins-workflow作业迁移到基于新模板的工作流作业。因为构建号用作构建工件版本的一部分,所以工作流产生我必须以比旧工作流更大的数字开始新工作流的构建号。不幸的是,“Next Build Number”插件不适用于工作流程管道。
有人知道这样做的好方法吗?
答案 0 :(得分:16)
或者,您可以将这样的代码段添加到您的Pipeline / Workflow作业DSL脚本(又名Jenkinsfile)中:
offset = 5
currentBuild.displayName = "#" + (currentBuild.number + offset)
答案 1 :(得分:10)
不幸的是,上面列出的方法在使用文件夹时对我不起作用。我在Jenkins脚本控制台中使用了以下内容:
job = Jenkins.getInstance().getItemByFullName("BSKAzureConversion-Jobs/master", Job.class)
job.nextBuildNumber = 92
job.save()
答案 2 :(得分:8)
尝试在Jenkins脚本控制台中运行以下脚本。将“workFlow”更改为您的作业名称
def job = Jenkins.instance.getItem("workFlow")
job.nextBuildNumber = 10
job.saveNextBuildNumber()
答案 3 :(得分:2)
一些注意事项:
@NonCPS
Jenkins.instance
之类的全局变量无法访问Jenkins.instance.getItem()
无法与文件夹配合使用。对Jenkins.instance.getItemByFullName
env.JOB_NAME
job.nextBuildNumber
将在后续构建中生效,因此请继续开始下一个代码:
@NonCPS
def updateBuildNumber(build_number) {
def job = Jenkins.instance.getItemByFullName(env.JOB_NAME, Job.class)
job.nextBuildNumber = build_number
job.saveNextBuildNumber()
build env.JOB_NAME
return true
}
答案 4 :(得分:0)
我还通过使用'jenkins-cli'找到了另一种方法。它适用于无法访问脚本控制台的锁定安装(Cloudbees Enterprise Jenkins)
java -jar jenkins-cli.jar -s https://instanceURL/ \
set-next-build-number workflow-name 33
答案 5 :(得分:0)
我使用了@Jayan 的答案并对其进行了修改以支持从该工作流程中获取分支,因为 getItem("workflow/job/mybranch")
不起作用
def job = Jenkins.instance.getItem("workFlow").getItemByBranchName("mybranch")
job.nextBuildNumber = 10
job.saveNextBuildNumber()