我准备了一个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 日志作为附件发送到松弛通道。
答案 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)
}
}