Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 有没有办法解析控制台输出并设置环境变量_Jenkins - Fatal编程技术网

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

Jenkins 有没有办法解析控制台输出并设置环境变量,jenkins,Jenkins,我对詹金斯比较陌生。我进入了这样一个场景:我需要读取控制台输出并找到一个特定的字符串,然后将其设置为环境变量。我将在一些下游工作中使用这个变量 例如:my jenkins job的控制台将包含以下内容 product\u build\u number:123456 我已经研究了FindText,类似于日志解析器的插件,但它们不能帮助我将这个值设置为环境变量 有人能帮忙找到这个号码并把它传给下游的工作吗 ** 更新后的答复: ** 考虑使用 例如: 如果检测到使用了不推荐的方法,下面的脚本会放置一

我对詹金斯比较陌生。我进入了这样一个场景:我需要读取控制台输出并找到一个特定的字符串,然后将其设置为环境变量。我将在一些下游工作中使用这个变量

例如:my jenkins job的控制台将包含以下内容

product\u build\u number:123456

我已经研究了FindText,类似于日志解析器的插件,但它们不能帮助我将这个值设置为环境变量

有人能帮忙找到这个号码并把它传给下游的工作吗

**

更新后的答复:

**

考虑使用

例如:

如果检测到使用了不推荐的方法,下面的脚本会放置一个警告标志,并将生成标记为不稳定


这是您(通过控制台)获取此号码的唯一方法吗?你能用任何其他方法获得版本号吗?(读取属性文件、查询服务)?此数字是在我的作业期间执行的其他脚本的输出。我对这个脚本没有控制权。我会尝试让您知道,在一段时间内,我必须从ParametersAction中删除“[]”,并添加System.setProperty(“hudson.model.ParametersAction.safeParameters”,“BUILD_MSG”)或jenkins Dhudson.model.ParametersAction.safeParameters=BUILD_MSG的开头以使其工作。
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
}
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()
}
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}")
        ])
    )
}