3

如何将 Jenkins 中的参数从构建步骤传递到构建后步骤?我不想通过文件来做,因为它只是一个我想传递的简单字符串(版本号)。

在后期构建中,我使用 Groovy 后期构建插件将此字符串添加到构建摘要中。


更新: 我很绝望))并决定通过文件路由。无法弄清楚如何在 Groovy 构建后步骤中获取 WORKSPACE env var 以从那里获取文件。

最终更新: 所以我最终解析了构建日志,请参阅下面的我自己的答案。

4

2 回答 2

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()
}
于 2013-08-21T11:09:08.010 回答
0

也许使用envinject 插件

于 2013-08-20T21:40:10.113 回答