【问题标题】:How to increase jenkins build number automatically?如何自动增加詹金斯内部版本号?
【发布时间】:2014-03-27 04:56:39
【问题描述】:

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

【问题讨论】:

  • 它会在每次触发构建时自动递增。 “现在我正在使用配置选项做同样的事情,并手动增加”是什么意思?如果您回显它,jenkins 提供的环境变量“BUILD_NUMBER”将在构建日志中为您显示。
  • @Mayur 有两件事。 1.当构建失败时,构建数量也会增加。 2. 我在这个插件中使用插件“Invoke Top-Level Maven Targets”,假设我保持版本 = 50。如果它失败了,那么下次我不打算保留 51,它将是 50,只有未点亮的构建不会成功。所以这个号码我是手动保存的。我想要 ti 自动。如果我在同一个插件中使用“BUILD_NUMBER”,那么即使失败也会增加。我希望它仅在构建成功的情况下增加。
  • 好的。知道了。 Jenkins 在名为 nextbuildnumber 的文件中维护内部版本号。每次构建启动时,它都会自动增加该数字。如果你愿意,你可以通过 shell 脚本登录来控制它,这将检查你的构建结果。如果构建通过(您可能想检查退出代码),让它增加该数字,否则将其重置为旧数字。此外,您可能希望清除该构建的目录/工作区。登录 jenkins slave 了解内部结构。
  • 有一些方法可以增加这个数字,但是你不能改变以匹配已经存在的构建。

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


【解决方案1】:

您所要求的(即在多个作业之间保持内部版本号相同)在 Jenkins 中简直是不可能。这是通过设计完成的(正如 Jenkins 创建者本人所指出的那样):"[JENKINS] assumes that the build number is unique and monotonic."。您可以将其更改为更高的值,但将其更改为相同的数字会彻底破坏 Jenkins,因此是不可能的。

Build run 编号就是:一个 run 编号。
它应该是顺序的。
无论如何,它不是版本号。

但是,有几种方法可以将版本信息获取到构建历史记录中。

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

这就是它的样子:

请注意,构建 #50#51 实际上具有相同的版本 1.3.0.394376
在该版本字符串中,1.3.0 是当前版本号,由项目属性确定,而394376 实际上是一个 SVN 修订号,从 $SVN_REVISION_1 构建变量中获得。所以每次在 SVN 中有一个新的提交,我都会得到一个新的修订号。但是,如果没有提交并且无论出于何种原因重新构建作业(例如在#50#51),我的版本号保持不变,因为没有代码 更改。

我的配置方式是:

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

* 请注意,如果您的构建在输出版本文本的步骤之前失败,描述设置器插件将无法获取它。如果您总是想查看版本,那么首先设置版本号的显示。

Build Name Setter plugin
此插件实际上会更改内部版本号

但是请记住每个内部版本号必须唯一的限制.
确保这一点的最佳方法是将${BUILD_NUMBER} 添加到您想要的任意数字(如上图所示)。这样您就可以拥有像50.123 这样的构建编号,然后是50.124,其中50 是您的版本,而123124 是顺序构建运行 编号,并且 Jenkins 确保保持 ${BUILD_NUMBER} 的唯一性。

最后,还有一个我没有亲自尝试过的Version Number plugin,但它可能会对你有所帮助。

【讨论】:

    猜你喜欢
    • 2014-01-21
    • 1970-01-01
    • 2018-01-29
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 2017-09-03
    相关资源
    最近更新 更多