【问题标题】:Slack Notification upload/attach log fileSlack 通知上传/附加日志文件
【发布时间】:2017-10-16 09:49:10
【问题描述】:

我准备了一个 jenkins 管道,如果任何步骤失败,Jenkins 然后在相应的 slack 通道上发送通知,其中包含作业控制台输出 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 日志作为附件发送到 slack 通道。

【问题讨论】:

    标签: groovy slack


    【解决方案1】:

    试试下面的代码,可以通过jenkins控制台日志或者参考网址: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)
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      相关资源
      最近更新 更多