7

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

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

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

但没有运气。

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

4

3 回答 3

9

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

然后,按照其他 StackOverflow线程的说明进行操作:

Jenkins.instance.getItemByFullName("My-Build-Pipeline/feature%2FABC-9-improve-build").updateNextBuildNumber(47)

在上面的示例中,我的“完整项目名称”是:

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

我尝试使用该线程中也提到的“下一个内部版本号”插件,但它不适用于我的多分支管道工作。

于 2016-11-10T22:13:28.993 回答
2

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

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()
于 2019-06-21T17:53:20.703 回答
-6

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

考虑更改描述,而不是使用job.setDisplayName来反映候选发布的情况,或者将其烘焙到分支本身release-candidate-branch-34

于 2016-11-01T04:11:27.740 回答