如何将 Jenkins 中的参数从构建步骤传递到构建后步骤?我不想通过文件来做,因为它只是一个我想传递的简单字符串(版本号)。
在后期构建中,我使用 Groovy 后期构建插件将此字符串添加到构建摘要中。
更新: 我很绝望))并决定通过文件路由。无法弄清楚如何在 Groovy 构建后步骤中获取 WORKSPACE env var 以从那里获取文件。
最终更新: 所以我最终解析了构建日志,请参阅下面的我自己的答案。
如何将 Jenkins 中的参数从构建步骤传递到构建后步骤?我不想通过文件来做,因为它只是一个我想传递的简单字符串(版本号)。
在后期构建中,我使用 Groovy 后期构建插件将此字符串添加到构建摘要中。
更新: 我很绝望))并决定通过文件路由。无法弄清楚如何在 Groovy 构建后步骤中获取 WORKSPACE env var 以从那里获取文件。
最终更新: 所以我最终解析了构建日志,请参阅下面的我自己的答案。
我最终在构建步骤中将信息打印到构建日志,然后在构建后的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()
}
也许使用envinject 插件?