更改Jenkins内部版本号

时间:2013-10-28 21:30:23

标签: jenkins

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

set BUILD_NUMBER=45

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

8 个答案:

答案 0 :(得分:194)

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

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

答案 1 :(得分: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 :(得分:25)

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

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

有一个名为nextBuildNumber的文件。

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

答案 3 :(得分:5)

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

答案 4 :(得分:3)

如果您的分支名称包括正斜杠(例如,使用 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)

我能够通过运行以下命令找到有关此信息,该命令将列出管道的不同作业(分支)

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

希望有帮助。

答案 5 :(得分:1)

您可以通过在Jenkins服务器上更新文件$ {JENKINS_HOME} / jobs / job_name / nextBuildNumber来更改内部版本号。

您还可以安装插件Next Build Number plugin,以使用CLI或UI更改内部版本号

答案 6 :(得分:0)

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

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

答案 7 :(得分:-2)

通过使用环境变量 $ BUILD_NUMBER = 4

相关问题