我已经为这个问题做了很多谷歌,但没有发现任何有助于解决我的问题的东西。
我正在尝试解析 Jenkins 作业的控制台输出并设置环境变量。我将在我的父作业中需要这个变量,它将在不同的奴隶上运行。
我可以使用从控制台输出中获取我需要的字符串值
def build = Thread.currentThread().executable
def matcher = manager.getLogMatcher(".*myEnvironemntValue: (.*)")
if(matcher != null && matcher.matches()) {
log('found my value')
myEnvironemntValue= matcher.group(1).substring(0)
def pa = new ParametersAction([
new StringParameterValue("MY_ENV_VALUE", myEnvironemntValue)
])
build.addAction(pa)
manager.addInfoBadge(myEnvironemntValue)
}
更新
我有一个buildflow作业(父作业),我将使用 DSL 脚本调用其他子作业,例如
def b1 = build("child_job1", NODE: node)
def b2 = build("child_job2", NODE: node)
子作业child_job1
并且是多阶段作业,child_job2
它们在各个阶段依次调用其他作业,phase1_job
例如phase2_job
phase3_job
一旦作业phase3_job
完成执行,我想从它的控制台获取一个特定的值。
有人可以帮助解决这个问题吗?如果它们可以帮助我获取控制台值并将其设置为环境变量,我可以使用其他插件