首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jenkins管道构建失败后如何发送Slack通知?

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

Stack Overflow用户
提问于 2016-08-25 16:24:13
回答 1查看 77.5K关注 0票数 38

我在Jenkins v2.19中有一个流水线groovy脚本。另外,我还有一个

"Slack Notification Plugin“v2.0.1和"Groovy Postbuild插件”。

我已经成功地发送了一条消息"build started“和"build finished”(如果有)。

当某些构建步骤失败时-如何向Slack通道发送消息“构建失败”?

EN

回答 1

Stack Overflow用户

发布于 2016-10-09 18:15:07

您可以这样做,并使用try catch块。

下面是一些示例代码:

代码语言:javascript
复制
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 Template

票数 44
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39140191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档