我准备了一个jenkins管道,在该管道下,如果任何步骤失败,那么Jenkins然后通过包含Job Console输出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日志作为松弛通道的附件。
尝试以下代码,您可以在其中传递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)
}
}