只有在工作没有退步的情况下才会对失败后的行为进行处理

时间:2018-05-15 04:37:49

标签: jenkins jenkins-declarative-pipeline

我想在声明性管道中实现以下通知:

  

(回归)→工作已经开始失败!

     

(失败)→工作仍然失败。

     

(已修复)→作业已恢复。

post conditions似乎无法做到这一点。相反,当构建失败时,failureregression都会触发。有一个changed条件,但我认为这个任务需要的是unchanged { failure },它不存在。

post {
    regression {
        slackSend message: 'Job has started to fail!'
    }
    failure {
        slackSend message: 'Job is still failing.'
    }
    fixed {
        slackSend message: 'Job has resumed.'
    }  // no need for 'success' as we don't want a notification while it's working
}

如果作业先前成功,上面的配置将发送以下通知:

  

(工作失败)

     
    

工作已经开始失败了!

         

工作仍然失败。

  
     

(工作失败)

     
    

工作仍然失败。

  
     

(工作成功)

     
    

工作已经恢复。

  

额外的"工作仍然失败"作业首次开始失败时的消息。有没有办法使用post条件?

或者,如何以另一种方式实现此行为?我已经在post { always { // decide which message is appropriate } }做了一个通行证,但还没有找到如何确定以前版本的状态。

0 个答案:

没有答案