如何将Jenkins中的参数从构建步骤传递到构建后步骤? 我不想通过文件来完成它,因为它只是一个我想传递的简单字符串(版本号)。
在后期构建中,我使用Groovy postbuild插件将此字符串添加到构建的摘要中。
更新 我在绝望))并决定通过文件路线。 无法弄清楚如何在Groovy后期构建步骤中获取WORKSPACE env var以从中获取文件。
最终更新 所以我最终解析了构建日志,请参阅下面的答案。
答案 0 :(得分:2)
我最终在构建步骤中将信息打印到构建日志,然后在构建后 Groovy插件中解析它。
有点丑陋的解决方法,我知道,有时候我会想念TeamCity简单......
下面的正则表达式模式显然特定于我自己的构建...
def matcher = manager.getLogMatcher("^Build Found: [\\w\\s-]+_(\\d+\\.\\d+\\.\\d+)_\\d{8}(\\.\\d+)?\$")
if (matcher?.matches()) {
def Version = matcher.group(1)
manager.addShortText(Version, "grey", "white", "0px", "white")
manager.createSummary("fingerprint.gif").appendText("Version: " + Version, false)
} else {
manager.listener.logger.println("ERROR: Version number is not found in the build log")
manager.buildFailure()
}
答案 1 :(得分:0)
也许使用envinject plugin?