改变 Jenkins 的编号

有没有一种方法来改变建立编号是通过电子邮件发送后,作业完成?问题是,是产品建设没有做詹金斯,所以我们希望能够得到的建设号码(即。从文本文件) ,并更新在詹金斯的内建号码,以匹配它。我试图设置构建编号:

set BUILD_NUMBER=45

但是邮件中仍然显示了詹金斯最初设定的构建编号。

142761 次浏览

也许这些插件的组合会派上用场:

可以通过插件完成: Https://wiki.jenkins-ci.org/display/jenkins/next+build+number+plugin

更多信息: Http://www.alexlea.me/2010/10/howto-set-hudson-next-build-number.html

如果你不喜欢这个插件:

如果要通过 nextBuildNumber 文件更改构建号,则应该 “从磁盘重新加载配置”从“管理詹金斯”页面。

在作业工作区文件夹下,比如:

C:\Program Files (x86)\Jenkins\jobs\job_name

有一个名为 nextBuildNumber的文件。

在文件中设置构建编号并从磁盘(Manage Jenkins 菜单)重新加载配置,将强制下一次构建时将文件中的值设置为 BUILD _ NUMBER。

如果您可以访问脚本控制台(Manage Jenkins-> Script Console) ,那么您可以执行以下操作:

Jenkins.instance.getItemByFullName("YourJobName").updateNextBuildNumber(45)

通过使用环境变量:

$BUILD_NUMBER =4

如果你有包括 向前斜杠在内的分支名称(例如使用 Git Flow) ,你需要在分支名称内用它的 Unicode字符 % 2F代替 向前斜杠

下面是管道 我的名字和分支 Release/my-release-Branch-name的示例

Jenkins.instance.getItemByFullName("My-Pipeline-Name/release%2Fmy-release-branch-name").updateNextBuildNumber(BUILD_NUMBER)

我可以通过运行下面的命令来了解这一点,该命令将列出您的管道的不同作业(分支)

Jenkins.instance.getItem("My-Pipeline-Name").getAllJobs()

希望能有帮助。

您可以通过更新 JENKINS 服务器上的文件 ${ JENKINS _ HOME }/jobs/job _ name/nextBuildNumber 来更改构建编号。

您还可以安装插件 下一个构建编号插件来使用 CLI 或 UI 更改构建编号

对于多分支管道项目,请在脚本控制台中执行以下操作:

def project = Jenkins.instance.getItemByFullName("YourMultibranchPipelineProjectName")
project.getAllJobs().each{ item ->
    

if(item.name == 'jobName'){ // master, develop, feature/......
      

item.updateNextBuildNumber(#Number);
item.saveNextBuildNumber();
      

println('new build: ' + item.getNextBuildNumber())
}
}

按照下面的步骤: Jenkins 控制台 > 管理 Jenkins > 脚本控制台,然后按如下方式编写脚本:

GetItemByFullName (“ Your _ job _ name”) . updateNextBuildNumber (45)