Jenkins:管道作业/阶段的单个电子邮件摘要报告?

时间:2018-12-13 04:48:56

标签: jenkins pipeline

是否有一种通用的方法来发送电子邮件通知,以汇总底层的詹金斯式样和工作?

现在,我们有一个父管道,该管道在其中调用其他作业或管道作业。每个工作现在都在发送自己的电子邮件,而且变得太吵了。

例如,如果我有2个阶段,每个阶段都有2个并行的任务/工作。我想发送电子邮件摘要,例如:

第1阶段:失败(因为taskA失败)

-firstTaskA:通过

-firstTaskB:失败

第二阶段:通过

-firstTaskA:通过

-firstTaskB:通过

管道示例:

stage("Stage 1") {
    steps {
        parallel (
            "firstTaskA" : {
                //do some stuff
            },
            "secondTaskA" : {
                // Do some other stuff in parallel
            }
        )
    }
}
stage("Stage 2") {
    steps {
        parallel (
            "firstTaskB" : {
                //do some stuff
            },
            "secondTaskB" : { //calls a pipeline job
                // Do some other stuff in parallel
            }
        )
    }
}
post{ //aggregate the results and send an email }

1 个答案:

答案 0 :(得分:0)

node {
try {

    stage('Clean Work Space') {
        try {
             // Try stage...
        } catch (e) {
            currentBuild.result = "FAILURE"
            throw e
        } finally {
                stage('Cleanup Job workspace') {
                cleanWs()
          }
          if(currentBuild.result == 'FAILURE') {
              // Send email
          }
      }
    }
  }

使用try,catch并最终尝试并尝试捕获故障,如果发现故障,请发送电子邮件。

您可以在try,catch或finally部分中发送电子邮件,具体取决于您的电子邮件原因。

如果您想发送一封电子邮件,请在所有阶段之外的主节点上使用try,catch和finally(将所有阶段都用try,catch和finally包裹)。