Jenkins管道构建失败后如何发送Slack通知? [英] How to send Slack notification after Jenkins pipeline build failed?
本文介绍了Jenkins管道构建失败后如何发送Slack通知?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Slack Notification Pluginv2.0.1和Groovy Postbuild Plugin。
我已成功发送消息build started 和构建完成(如果有的话)。
当某个构建步骤失败时 - 如何向Slack频道发送构建失败消息? p>
解决方案
你可以做这样的事情,并使用try catch块。
以下是一些示例代码:
节点{
尝试{
notifyBuild('STARTED')
stage('Prepare code'){
echo'do checkout stuff'
}
stage('Testing'){
echo '测试'
echo'测试 - 发布覆盖结果'
}
stage('Staging'){
echo'Deploy Stage'
}
stage('Deploy'){
echo'Deploy - Backend'
echo'Deploy - Frontend'
}
} catch(e){
//如果抛出异常,构建失败
currentBuild.result =FAILED
throw e
} finally {
//成功或失败,总是发送通知
notifyBuild(currentBuild.result)
}
}
$ b $ def notifyBuild(String buildStatus ='STARTED'){
//建立null状态表示成功
buildStatus = buildStatus?:'SUCCESSFUL'
//默认值
def colorName ='RED'
def colorCode ='#FF0000'
def subject =$ {buildStatus}:作业'$ {env.JOB_NAME} [$ { env.BUILD_NUMBER}]'
def summary =$ {subject}($ {env.BUILD_URL})
//根据构建状态覆盖默认值
if (buildStatus =='STARTED'){
color ='YELLOW'
colorCode ='#FFFF00'
} else if(buildStatus =='SUCCESSFUL'){
color = '绿色'
colorCode ='#00FF00'
} else {
color ='RED'
colorCode ='#FF0000'
}
/ /发送通知
slackSend(color:colorCode,message:summary)
}
完整的代码片段可以在这里找到 Jenkinsfile模板
I have a pipeline groovy script in Jenkins v2.19. Also I have a
"Slack Notification Plugin" v2.0.1 and "Groovy Postbuild Plugin".
I have successfully send a message "build started" and "build finished" (if it had).
When some build step failed – how I can send a message "Build failed" to the Slack channel?
解决方案
You could do something like this and use a try catch block.
Here is some example Code:
node {
try {
notifyBuild('STARTED')
stage('Prepare code') {
echo 'do checkout stuff'
}
stage('Testing') {
echo 'Testing'
echo 'Testing - publish coverage results'
}
stage('Staging') {
echo 'Deploy Stage'
}
stage('Deploy') {
echo 'Deploy - Backend'
echo 'Deploy - Frontend'
}
} catch (e) {
// If there was an exception thrown, the build failed
currentBuild.result = "FAILED"
throw e
} finally {
// Success or failure, always send notifications
notifyBuild(currentBuild.result)
}
}
def notifyBuild(String buildStatus = 'STARTED') {
// build status of null means successful
buildStatus = buildStatus ?: 'SUCCESSFUL'
// Default values
def colorName = 'RED'
def colorCode = '#FF0000'
def subject = "${buildStatus}: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'"
def summary = "${subject} (${env.BUILD_URL})"
// Override default values based on build status
if (buildStatus == 'STARTED') {
color = 'YELLOW'
colorCode = '#FFFF00'
} else if (buildStatus == 'SUCCESSFUL') {
color = 'GREEN'
colorCode = '#00FF00'
} else {
color = 'RED'
colorCode = '#FF0000'
}
// Send notifications
slackSend (color: colorCode, message: summary)
}
Complete snippet can be found here Jenkinsfile Template
这篇关于Jenkins管道构建失败后如何发送Slack通知?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文