我有一个带有升级构建插件和 Mercurial 插件的 Jenkins CI 服务器。当构建升级时,我想做的是标记 Mercurial 中与该构建相对应的修订版。
Mercurial 插件公开一个名为 MERCURIAL_REVISION_NUMBER 的环境变量,该变量会在构建运行时填充,但不会在升级运行时填充。因此,当我尝试在促销中的“执行 Windows 批处理命令”步骤中执行以下操作时:
hg tag --rev %MERCURIAL_REVISION_NUMBER% "升级-%PROMOTED_NUMBER%-%PROMOTED_ID%"
它失败,因为 %MERCURIAL_REVISION_NUMBER% 计算结果为空字符串,因此没有为 --rev 参数提供任何值。
我确实注意到 Mercurial 修订版本保存在每个构建的 build.xml 文件中。我想知道是否有一种简单的方法可以在我的促销步骤中实现它。
最佳答案
build.xml 必须是您的 Jenkins 脚本正在创建的内容——Mercurial 不是。
您的 Mercurial 命令看起来不错。
一种选择是将构建信息作为 jenkins 脚本的一部分放入文件中:
hg id > $WORKSPACE/built-version
然后将 built-version
包含为构建的工件之一。那么您的促销脚本可以执行以下操作:
hg tag --rev $(< built-version) "Promoted-${PROMOTED_NUMBER}-${PROMOTED_ID}"
或者任何 Windows 上的等价物。
关于mercurial - 在 Jenkins 中推广构建时,如何在 Mercurial 中标记特定修订版?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15147427/