更改Jenkins内部版本号

erm*_*an8 123 jenkins

有没有办法在作业完成后更改通过电子邮件发送的内部版本号?问题是产品构建不是由Jenkins完成的,所以我们希望能够获取构建号(即来自文本文件)并更新Jenkins中的构建号以匹配它.我试图设置内部版本号:

set BUILD_NUMBER=45
Run Code Online (Sandbox Code Playgroud)

但是电子邮件仍然显示了Jenkins最初设置的内部版本号.

l8n*_*ite 216

如果您可以访问脚本控制台(管理Jenkins - >脚本控制台),则可以执行以下操作:

Jenkins.instance.getItemByFullName("YourJobName").updateNextBuildNumber(45)
Run Code Online (Sandbox Code Playgroud)

  • 作品.可以使用以下命令验证该值:`Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()` (12认同)
  • 我可以验证这完美地解决了这个问题.我手动复制了两个jenkins服务器之间的构建历史记录,并且在新服务器上nextBuildNumber是错误的.运行这个允许我设置一个正确的新nextBuildNumber,不需要jenkins配置重新加载. (7认同)
  • 我可以确认这也适用于MultiBranch-Pipelines."JobName"列在分支页面的顶部:完整项目名称:`PipelineName/BranchName`所以它将是`Jenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)` (5认同)
  • 如果您使用的是GitHub插件,`"YourJobName"`是`"organization/repository/branchname"`. (4认同)

mig*_*ghq 35

可以使用插件完成: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文件更改内部版本号,则应从"管理Jenkins"页面"从磁盘重新加载配置".

  • 无需使用插件. (2认同)

vez*_*kov 27

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

C:\Program Files (x86)\Jenkins\jobs\job_name
Run Code Online (Sandbox Code Playgroud)

有一个名为的文件nextBuildNumber.

在文件中设置内部版本号并从磁盘重新加载配置(Manage Jenkins菜单)将强制您开始的下一个构建将文件中的值作为BUILD_NUMBER.

  • 更改nextBuildNumber文件后,您是否从磁盘(管理Jenkins菜单)重新加载配置? (9认同)

小智 10

如果您的分支名称包括正斜杠(例如使用git flow),则需要在分支名称中用它的 Unicode 字符%2F替换正斜杠

这是管道My-Pipeline-Name和分支release/my-release-branch-name的示例

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

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

Jenkins.instance.getItem("My-Pipeline-Name").getAllJobs()
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。


Mor*_*fic 5

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