0

我是 Jenkins 的新手,我想找到一种方法来为每个构建步骤失败发送电子邮件。

更具体地说,我有一份运行脚本的工作(作为单独的构建步骤),我想将 Jenkins 配置为在其中一个步骤失败时发送通知。

每个脚本运行一个不同的测试包,QA 询问我们是否可以根据哪个构建步骤失败发送单独的电子邮件。

你能帮忙吗?

我已经在使用 EMAIL-EXT 插件,但它似乎没有给你选择。

4

1 回答 1

0

您可以将每个构建步骤放在声明性管道阶段,因为这些可以利用该post块发送电子邮件。像这样:

pipeline {
  agent { label 'docker' }
  stages {
    stage('stage1') {
      steps {
        sh 'script1.sh'
      }
      post {
        failure {
          emailext (
            subject: "Test1", body: "Test", recipientProviders: [[$class: 'DevelopersRecipientProvider']]
          )
        }
      }
    }
    stage('stage2') {
      steps {
        sh 'script2.sh'
      }
      post {
        failure {
          emailext (
            subject: "Test2", body: "Test", recipientProviders: [[$class: 'DevelopersRecipientProvider']]
          )
        }
      }
    }
  }
}

请注意,如果第一阶段失败,上述解决方案不会运行整个管道。您还可以在脚本化或声明性管道中使用 try/catch。这将为您提供最大的灵活性(例如,如果您确实希望整个管道运行,即使其中一个步骤失败了)。

于 2017-05-23T11:19:40.117 回答