我正在寻找一种通用方法来确定 Jenkins 脚本化管道末尾失败阶段的名称。
请注意,这不同于确定 Jenkins 声明性管道中的失败阶段 https://stackoverflow.com/questions/43439093/determine-failed-stage-in-jenkins-declaritive-pipeline这是关于声明性管道的。
另请注意,在每个阶段内使用 try/catch 是不可能的,因为这会使管道脚本无法读取。这是因为我们有大约 10-15 个阶段,它们存储在多个文件中,并且使用 JJB 编译它们以创建最终的管道脚本。它们已经很复杂,所以我需要一种干净的方法来查找哪个阶段失败了。
您还可以在共享库中创建自定义步骤,即 super_stage
快速示例:
// vars/super_stage.groovy
def call(name, body) {
try {
stage(name) {
body()
}
} catch(e) {
register_failed_stage(name, e)
throw e
}
}
通过这种方式,您可以“重用”相同的异常处理程序。
在您的脚本化管道中,您可以像这样使用它:
super_stage("mystage01") {
//do stuff
}
Source https://github.com/roel0/jenkins-util-scripts
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)