我是Jenkins的新手,我想找到一种方法来发送每个构建步骤失败的电子邮件。
更具体地说,我有一个运行脚本的作业(作为单独的构建步骤),我想配置Jenkins在其中一个步骤失败时发送通知。
每个脚本都运行不同的测试包,QA询问我们是否可以发送单独的电子邮件,具体取决于哪个构建步骤失败。
你可以帮忙吗?
我已经在使用EMAIL-EXT插件,但它似乎没有给你提供选项。
答案 0 :(得分: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']]
)
}
}
}
}
}
请注意,如果第1阶段失败,上述解决方案不会运行整个管道。您还可以在脚本或声明性管道中使用try / catch。这将允许您最大的灵活性(例如,如果您确实希望整个管道运行,即使其中一个步骤失败,例如)。