Электронная почта для каждого шага сборки, который не удается в 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 в скриптовом или декларативном конвейере. Это даст вам максимальную гибкость (если вы действительно хотите, чтобы весь конвейер работал, даже если, например, один из шагов не прошел).