如何在特定分支的Multibranch管道中设置下一个构建号

时间:2016-10-31 21:13:37

标签: jenkins multibranch-pipeline

我正在尝试以编程方式为发布分支设置下一个内部版本号,但我遇到了问题。

以下是我尝试过的两种方式:

def job = Jenkins.instance.getItem("master")
job.nextBuildNumber = env.BUILD_NUMBER + 1
job.saveNextBuildNumber()

我也尝试使用CLI命令:

java -jar ${env.HOME} jenkins-cli.jar -s XX-JENKINS-SERVER" set-next-build-number 'Pipeline/master' 44

但没有运气。

请指导我如何为multibranch管道设置下一个内部版本号。

3 个答案:

答案 0 :(得分:4)

你绝对可以做到这一点,我只是做了测试。如果您进入要更改的管道作业的特定分支的实际页面,请注意"完整项目名称:"靠近标题下方的顶部。

然后,按照其他StackOverflow thread

中的说明进行操作
Jenkins.instance.getItemByFullName("My-Build-Pipeline/feature%2FABC-9-improve-build").updateNextBuildNumber(47)

在上面的例子中,我的"完整的项目名称"是:

My-Build-Pipeline/feature%2FABC-9-improve-build

我尝试使用" Next Build Number"该线程中也提到了插件,但它对我的multibranch管道工作没有用。

答案 1 :(得分:0)

对于多分支作业,您需要转到要修改的分支的基础作业,因为每个分支都是独立的。

def jobName = "job-name"
def nextnumber = 32


def wfjob = Jenkins.instance.getItemByFullName(jobName)
def job = wfjob.getItem("master")
print "Was: " + job.nextBuildNumber + "\n"
job.nextBuildNumber = nextnumber
print "Now: " + job.nextBuildNumber
job.save()
wfjob.save()

答案 2 :(得分:-4)

您无法设置下一个内部版本号。它仅供内部使用,用于识别作业运行之间的差异。每次运行作业时,内部版本号都会增加1。没有必要(我不鼓励尝试)设置下一个内部版本号。

请考虑使用job.setDisplayName更改说明,以反映发布候选版本的内容,或者将其烘焙到分支本身release-candidate-branch-34