Jenkins 如何在多分支管道中为特定分支设置下一个内部版本号

Jenkins 如何在多分支管道中为特定分支设置下一个内部版本号,jenkins,multibranch-pipeline,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-num

我试图以编程方式为发布分支设置下一个版本号,但我面临一个问题

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

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
但是没有运气


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

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


考虑使用
job.setDisplayName
来更改描述,以反映候选发行版的情况,或者将其烘焙到分支本身
release-candidate-branch-34
您完全可以这样做,我只是做了测试。如果进入要更改的管道作业的特定分支的实际页面,请注意标题下方顶部附近的“完整项目名称”

然后,按照另一个StackOverflow的说明进行操作:

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


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

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

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()

考虑使用生成号作为工件后缀的詹金斯迁移。您的新Jenkins环境需要有这个集合,这样您就不会(无法)覆盖现有的、已发布的工件。
My-Build-Pipeline/feature%2FABC-9-improve-build
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()