确定 Jenkins 脚本化管道中的失败阶段

2024-04-26

我正在寻找一种通用方法来确定 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(使用前将#替换为@)

确定 Jenkins 脚本化管道中的失败阶段 的相关文章

随机推荐