Jenkins管道构建失败后,如何发送Slack通知?

我在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模板

以上是 Jenkins管道构建失败后,如何发送Slack通知? 的全部内容, 来源链接: utcz.com/qa/409460.html

回到顶部