Дженкинс: Единый сводный отчет по электронной почте о заданиях / этапах конвейера? - PullRequest
0 голосов
/ 13 декабря 2018

Есть ли общий подход к отправке уведомлений по электронной почте для подведения итогов базовых stsages и заданий jenkins?

Прямо сейчас у нас есть родительский конвейер, который вызывает другие задания или конвейерные задания внутри него.Каждая работа отправляет свою собственную электронную почту прямо сейчас, и она становится слишком шумной.

Так, например, если у меня есть 2 этапа, каждый с 2 ​​параллельными задачами / заданиями.Я хочу отправить резюме по электронной почте, например:

Этап 1: СБОЙ (из-за сбоя задачи A)

- firstTaskA: PASS

- firstTaskB: FAIL

Этап 2: PASS

- firstTaskA: PASS

- firstTaskB: PASS

Пример конвейера:

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 голосов
/ 13 декабря 2018
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 и finally и попытайтесь перехватить сбои, если вы обнаружите сбой, отправьте электронное письмо.

Вы можете отправить электронное письмо в разделе try, catch или finally, зависит отпричина вашей электронной почты.

Если вы хотите использовать одну электронную почту, используйте try, catch и, наконец, на главном узле, вне всех этапов (оберните все этапы с помощью try, catch и finally).

...