如何在Node配置中获得Jenkins中的git标签名



我们在Jenkins中使用节点配置。在Post-build Actions中,我们有Git Publisher,它有标签要推送,例如5.1.0.$BUILD_NUMBER。现在,这将成为新的构建号,并用作测试

的发布号。

我想为所有剩余的作业访问这个标签,这样我就可以用5.1.0.$BUILD_NUMBER+myjob.xml创建测试报告xml,以便它与唯一的构建号相关。

然而,我不确定如何在所有单独的作业中检索Git标签。我不太确定我想使用全局变量字符串属性,因为它是一个节点配置,在一个节点/盒子上有一个不同的构建,另一个有一个不同的。全局属性可以相互覆盖构建版本吗?

如果你想在运行一个新作业时选择一个标签,你可以使用Git Parameter Plugin。有了这个插件,当你向你的作业添加参数时,你有了新的选项。

这个插件允许你在参数化构建中分配git标签或版本号作为参数。不需要特别设置,这个插件会从Git plugin中读取你的默认配置。

它首先获取(通过git fetch)当前存储库,并列出所有标签/sha1的选择。

您可以为tags/revision/branches/branches_or_tags选择以下排序选项

  • 下行
  • 提升提升智能
  • 下行智能

对于智能变量,比较将数字序列视为单个字符。由Graeme Hill贡献。


还有Git Tag Message Plugin,对于任何构建,它将发现是否有任何标签与当前构建使用的提交相匹配。如果找到一个标记,它的名称将在GIT_TAG_NAME环境变量中设置。

在构建过程中将git标签的名称和消息导出为环境变量。

如果在构建期间签出的修订与git标签相关联,则其名称将在构建期间作为GIT_TAG_NAME环境变量导出。如果在创建标签时指定了消息(例如通过git tag -m "…"),那么该消息也将在构建期间作为GIT_TAG_MESSAGE>环境变量导出。

如果修订有多个与之相关的标签,则只考虑最近的标签。然而,如果你的refspec包含了"refs/tags"——例如,只有当某些标签名称或模式匹配时才触发构建——那么触发构建的确切标签名称将被使用,即使它不是这个提交的最新标签。

最新更新