Электронная почта для каждого шага сборки, который не удается в Jenkins

Я новичок в Дженкинс, и я хотел бы найти способ отправить по электронной почте для каждого сбоя шаг сборки.

Более конкретно, у меня есть задание, которое запускает сценарии (как отдельные этапы сборки), и я хотел бы настроить Jenkins для отправки уведомлений в случае сбоя одного из этих этапов.

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

Не могли бы вы помочь с этим?

Я уже использую плагин EMAIL-EXT, но он не дает вам возможности.

1 ответ

Вы можете поместить каждый шаг сборки в декларативную стадию конвейера, так как они могут использовать 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']]
          )
        }
      }
    }
  }
}

Обратите внимание, что вышеупомянутое решение не запускает весь конвейер, если, скажем, этап 1 не пройден. Вы также можете использовать try/catch в скриптовом или декларативном конвейере. Это даст вам максимальную гибкость (если вы действительно хотите, чтобы весь конвейер работал, даже если, например, один из шагов не прошел).

Другие вопросы по тегам