使用非常简单的Jenkins文件,例如:
echo "Current build number: ${manager.build.number}"
if (manager.setBuildNumber(1)) {
echo "Build number is now: ${manager.build.number}"
manager.createSummary("gear2.gif").appendText("<h2>Testing</h2>", false)
}
输出结果为:
[Pipeline] echo
Current build number: 3
[Pipeline] echo
Build number is now: 3
[Pipeline] End of Pipeline
我希望第二个echo是build number 1.这意味着manager.createSummary()
将应用于当前的内部版本号(3),而不是预期的一个(1)。
有什么想法吗?我查看了groovy-postbuild
源代码,看起来它实际上是从build.getParent().getBuildByNumber(buildNumber)
获取构建,因为它返回一个非空值,但是它返回的构建可能是当前构建的提供了什么版本号?
FWIW,我们正在使用GitHub组织和多分支插件。
答案 0 :(得分:0)
您获得的构建实例是原始构建。每次调用&#34; manager&#34;时,插件都会使用原始版本创建一个新的BadgeManager实例。
为了在其他版本(在您的情况下为1)上执行if块操作,您应该使用相同的管理器实例。例如:
echo "Current build number: ${manager.build.number}"
def mng = manager
if (mng.setBuildNumber(1)) {
echo "Build number is now: ${mng.build.number}"
mng.createSummary("gear2.gif").appendText("<h2>Testing</h2>", false)
}