gpt4 book ai didi

Jenkins - 有没有办法解析控制台输出并设置环境变量

转载 作者:行者123 更新时间:2023-12-02 10:43:14 25 4
gpt4 key购买 nike

我对 Jenkins 比较陌生。我遇到的情况是,我需要读取控制台输出并找到特定的字符串并将其设置为环境变量。我将在一些下游作业中使用这个变量。

例如:我的 Jenkins 作业的控制台将包含类似的内容

产品版本号:123456

我研究过 FindText、日志解析器之类的插件,但它们不能帮助我将此值设置为环境变量

有人可以帮助找到这个数字并将其传递给下游作业吗?

**

Updated with Answer:

**

def matcher = manager.getLogMatcher(".*product_build_number=(\\d+.*)")
if(matcher.matches()) {
pbn= matcher.group(1).substring(0)
manager.build.setDescription(pbn) // you can do anything with this here
}

最佳答案

考虑使用Groovy Postbuild Plugin

示例:

The script below puts a warning badge and mark the build as unstable if it detects that deprecated methods were used.

if(manager.logContains(".*uses or overrides a deprecated API.*")) {
manager.addWarningBadge("Thou shalt not use deprecated methods.")
manager.createSummary("warning.gif").appendText("<h1>You have been warned!</h1>", false, false, false, "red")
manager.buildUnstable()
}

解决方案

完整的解决方案不仅使用 Groovy Postbuild Plugin解析控制台输出并设置变量 BUILD_MSG,但还需要 Parameterized Trigger Plugin使用预定义参数 MSG=${BUILD_MSG} 触发下游作业。下游作业自动有权访问 MSG 参数。

Groovy 后期构建脚本:

import hudson.model.*


matcher = manager.getLogMatcher('^build msg: (.*)$')

if (matcher.matches()) {
buildMsg=matcher.group(1)

manager.build.addAction(
new ParametersAction([
new StringParameterValue("BUILD_MSG", "${buildMsg}")
])
)
}

关于Jenkins - 有没有办法解析控制台输出并设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36420157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com