如何自动增加jenkins内部版本号?

时间:2014-03-27 04:56:40

标签: jenkins jenkins-plugins jenkins-cli jenkins-scriptler

如何自动增加jenkins内部版本号或使用shell脚本? 现在我使用configure选项做同样的事情,并手动增加。我想自动完成。

1 个答案:

答案 0 :(得分:22)

您要求的内容(即在多个作业之间保持相同的内部版本号)在Jenkins中只是不可能。这是通过设计完成的(正如Jenkins创建者自己所说):"[JENKINS] assumes that the build number is unique and monotonic."。您可以将其更改为更高的值,但将其更改为相同的数字将彻底打破Jenkins,因此无法实现。

构建运行号就是:运行号码 它应该是顺序的  以任何方式版本号。

然而,有几种方法可以将版本信息添加到构建历史中。

<强> Description Setter Plugin
这就是我使用的。它不会更改内部版本号,而是更改描述,这是自动完成的。此外,由于这是一个描述,它也可以随时手动修改。

这就是它的样子:
Description Setter build number
请注意,构建#50#51实际上具有相同的版本1.3.0.394376 在该版本字符串中,1.3.0是当前版本号,由项目属性确定,而394376实际上是从$SVN_REVISION_1构建变量获得的SVN修订号。因此,每次SVN中都有新的提交时,我会得到一个新的修订号。但是如果没有提交并且工作因任何原因重建(例如#50#51),我的版本号仍然相同,因为没有代码更改。

我配置的方式是:

  • 下载Description Setter Plugin
  • 构建步骤中的某处,输出您的版本*
  • 我只是: echo Version is: ${internalVersionNumberFromWherever}.${SVN_REVISION_1}
  • 使用设置构建说明
  • 下一步设置构建后操作
  • 设置正则表达式以从控制台中提取版本号: Version is: (.*)
  • 将其他所有内容留空,(.*)中提取的任何RegEx将用作说明。
  • 或者,您可以进一步将描述文本设置为Build - \1。其中\1是对RegEx中第一组(.*)的引用。
  • 您可以随时手动更改运行说明,方法是从构建历史记录中选择构建运行,然后单击&#34;编辑说明&#34; 右侧的链接(前提是该用户已配置&#34;更新&#34; 权限。)

*请注意,如果您的构建在输出版本文本的步骤之前失败,则描述setter插件将无法获取它。如果您总想查看版本,请将版本号的显示设置为第一步。

Build Name Setter plugin
此插件实际上会更改内部版本号 enter image description here
然而请记住每个内部版本号必须唯一的限制 确保将${BUILD_NUMBER}添加到您想要的任意数字的最佳方法(如上图所示)。通过这种方式,您可以使用50.12350.124之类的内置数字,其中50是您的版本,而123124是顺序的构建运行号码,Jenkins确保保持${BUILD_NUMBER}唯一。

最后,还有 Version Number plugin ,我个人没有亲自尝试过,但它可能对您有帮助。