gpt4 book ai didi

Jenkins Pipeline,即使在运行失败时也获取 runWrapper 引用

转载 作者:行者123 更新时间:2023-12-01 00:27:11 25 4
gpt4 key购买 nike

我正在尝试在 jenkins 管道中并行运行多个构建并获取这些构建的结果。我的代码看起来像

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 */
}
}
}

这在大多数情况下都有效。问题在于此代码只会打印出导致成功的构建的结果,因为失败的构建会在返回对 runWrapper 的引用之前抛出异常。

有没有办法获得对 runWrapper 或类似的引用,以便在失败的构建中为我提供信息(主要是 url 和结果)?或者有没有办法让我在开始构建并导致异常之前获得这样的引用?

最佳答案

尝试使用propagate: false:

build job: 'jobA', propagate: false, parameters: /* params here*/

但在这种情况下,您的parallel 将不再失败。

关于Jenkins Pipeline,即使在运行失败时也获取 runWrapper 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44036813/

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