我在Jenkins v2.19中有一个管道常规脚本。我也有一个 “ Slack Notification Plugin” v2.0.1和“ Groovy Postbuild Plugin”。
我已经成功发送了一条消息“构建已开始”和“构建已完成”(如果有的话)。
当某些构建步骤失败时,如何向Slack通道发送消息“ Build failed”?
您可以执行类似操作并使用try catch块。
这是一些示例代码:
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) }
完整的代码片段可以在这里找到Jenkinsfile模板