【发布时间】:2013-11-07 20:28:21
【问题描述】:
有没有办法在作业完成后更改通过电子邮件发送的内部版本号?问题是 Jenkins 没有完成产品构建,所以我们希望能够获取构建号(即从文本文件中)并更新 Jenkins 中的构建号以匹配它。我已尝试设置内部版本号:
set BUILD_NUMBER=45
但是邮件仍然显示 Jenkins 最初设置的内部版本号。
【问题讨论】:
标签: jenkins
有没有办法在作业完成后更改通过电子邮件发送的内部版本号?问题是 Jenkins 没有完成产品构建,所以我们希望能够获取构建号(即从文本文件中)并更新 Jenkins 中的构建号以匹配它。我已尝试设置内部版本号:
set BUILD_NUMBER=45
但是邮件仍然显示 Jenkins 最初设置的内部版本号。
【问题讨论】:
标签: jenkins
您可以通过更新 Jenkins 服务器上的文件 ${JENKINS_HOME}/jobs/job_name/nextBuildNumber 来更改内部版本号。
您还可以安装插件Next Build Number plugin 以使用 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())
}
}
【讨论】:
通过使用环境变量:
$BUILD_NUMBER =4
【讨论】:
如果您的分支名称包含 Forward Slash(例如使用 git flow),则需要将 Forward Slash 替换为其分支名称中的 Unicode 字符 %2F。
这是管道 My-Pipeline-Name 和分支 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.instance.getItemByFullName("YourJobName").updateNextBuildNumber(45)
【讨论】:
"YourJobName" 是"organization/repository/branchname"。
Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()
PipelineName/BranchName 所以应该是Jenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)
在作业工作区文件夹下,如:
C:\Program Files (x86)\Jenkins\jobs\job_name
有一个名为nextBuildNumber的文件。
在文件中设置构建号并从磁盘重新加载配置(管理 Jenkins 菜单)将强制您开始的下一个构建将文件中的值设为 BUILD_NUMBER。
【讨论】:
可以通过插件完成: 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”页面中的“从磁盘重新加载配置”。
【讨论】:
也许这些插件的组合可能会派上用场:
【讨论】: