更改Jenkins内部版本号

xu3bshqb  于 2022-11-28  发布在  Jenkins
关注(0)|答案(9)|浏览(302)

是否有办法更改作业完成后通过电子邮件发送的内部版本号?问题是产品内部版本不是由Jenkins完成的,因此我们希望能够获得内部版本号(即从文本文件)并更新Jenkins中的内部版本号以匹配它。我曾尝试设置内部版本号:

set BUILD_NUMBER=45

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

oewdyzsn

oewdyzsn1#

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

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

huwehgph2#

可以使用插件完成: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”页面“从磁盘重新加载配置”。

muk1a3rh

muk1a3rh3#

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

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

有一个名为nextBuildNumber的文件。
在文件中设置内部版本号并从磁盘重新加载配置(Manage Jenkins菜单)将强制您启动的下一个内部版本使用文件中的BUILD_NUMBER值。

uoifb46i

uoifb46i4#

如果分支名称中包含正斜杠(例如使用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()

希望能有所帮助。

wd2eg0qa

wd2eg0qa5#

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

0x6upsns

0x6upsns6#

您可以通过更新Jenkins服务器上的文件${JENKINS_HOME}/jobs/job_name/nextBuildNumber来更改内部版本号。
您也可以安装插件Next Build Number plugin,以使用CLI或UI更改内部版本号

7y4bm7vi

7y4bm7vi7#

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

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

9lowa7mx8#

请遵循以下步骤:Jenkins控制台〉管理Jenkins〉脚本控制台,然后将脚本编写为:
(45)您的工作名称是什么?

1l5u6lss

1l5u6lss9#

通过使用环境变量:

$BUILD_NUMBER =4

相关问题