Jenkins管道,即使在失败的运行中也获得runWrapper引用
我试图在jenkins管道中并行运行多个构建,并获得这些构建的结果。我的代码看起来像Jenkins管道,即使在失败的运行中也获得runWrapper引用,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我试图在jenkins管道中并行运行多个构建,并获得这些构建的结果。我的代码看起来像 runWrappers = [] script { def builds = [:] builds['a'] = { runWrappers += build job: 'jobA', parameters: /* params here*/ } builds['b'] = { runWrappers += build job: 'jobB', parameters: /* param
runWrappers = []
script {
def builds = [:]
builds['a'] = { runWrappers += build job: 'jobA', parameters: /* params here*/ }
builds['b'] = { runWrappers += build job: 'jobB', parameters: /* params here*/ }
builds['c'] = { runWrappers += build job: 'jobC', parameters: /* params here*/ }
builds['d'] = { runWrappers += build job: 'jobD', parameters: /* params here*/ }
parallel builds
// All the builds are ran in parallel and do not exit early if one fails
// Multiple of the builds could fail on this step
}
如果没有故障,管道将继续进入其他阶段。如果出现故障,将抛出异常,并立即运行以下生成后代码
post {
always {
script {
def summary = ''
for (int i; i < runWrappers.size(); i++) {
def result = runWrappers[i].getResult()
def link = runWrappers[i].getAbsoluteUrl()
summary += "Build at: " + link + " had result of: " + result
}
/* Code to send summary to external location */
}
}
}
post{
总是{
剧本{
def摘要=“”
对于(int i;i
这在很大程度上起作用。问题是,这段代码只会打印出导致成功的生成的结果,因为失败的生成在返回对runWrapper的引用之前会引发异常
有没有一种方法可以获取对runWrapper或类似文件的引用,从而为我提供失败构建的信息(主要是url和结果)?或者,在我开始构建并导致异常之前,有没有办法获取这样的引用?尝试使用
传播:false
:
build job: 'jobA', propagate: false, parameters: /* params here*/
但是在这种情况下,并行
将不再失败