Slack Notification上传/附加日志文件

时间:2017-10-16 09:49:11

标签: groovy slack

我准备了一个jenkins管道,如果任何步骤失败,Jenkins会在相应的松弛通道上发送包含作业控制台输出URL的链接的通知。我计划的是获取输出日志并将它们作为附件发送到通道,如果作业失败介于两者之间而不是URL(我不希望任何人登录jenkins来检查日志)。

目前我正在做的是(工作正常):

    stage ('1- Pull SourceCode')
    {
        try
        {
            node
            {
                print "Test SVN Checkout"
                //checkout command
            }
        }
        catch(Exception e)
        {
            currentBuild.result = 'FAILURE'
            slackSend (channel: '#channelname', color: '#FF0000', message: "Stage 1 Failed : check  error logs at ${env.JOB_URL}" , teamDomain: 'xyz', token: 'token')
        }
    }

有人可以帮助我使用slackSend命令从某个位置选择日志文件并将其作为附件发送到频道。 要么 slackSend命令用于将管道 stage 日志作为附件发送到松弛通道。

1 个答案:

答案 0 :(得分:0)

尝试以下代码,您可以在其中传递jenkins控制台日志或引用URL:https://jenkins.io/doc/pipeline/steps/slack/

#!/bin/groovy

def jenkinsConsoleUrl = "$env.JOB_URL" + "$env.BUILD_NUMBER" + "/consoleText"
node('mynode') {
    stage("Build") {
        def attachments = ""
        "[ { \"text\": \"And here’s an attachment!\" } ]"
        ""
        echo(attachments)
        slackSend(channel: "channel_name", color: "colorcode", message: "Test message" + jenkinsConsoleUrl, attachments: attachments)
    }

}