我有一个运行shell命令的Jenkins文件,我希望将sh
方法的输出作为message:
方法的slackSend
发送。
到目前为止,我有以下内容,但是对松弛通道的消息是空的。我不确定如何以我在消息部分中引用它的方式捕获输出:
node {
checkout scm
stage 'run shell command'
def shell_command = sh "ls -l"
def shell_output = apply_cluster
stage 'notify slack-notification'
slackSend channel: '#slack-notifications', color: 'good', message: shell_output, teamDomain: 'company', token: env.SLACK_TOKEN
}
答案 0 :(得分:1)
经过一番研究,我发现了一些我最初没有理解的事情:第一个是即使在Jenkins文件中定义一个函数,如果它是一个像sh
这样的DSL方法,它仍然会得到执行,所以我定义的第二个函数是没有必要的。其次,如果要返回stdout,则必须将其指定为命令的一部分。新代码如下所示:
node {
checkout scm
stage 'run shell command'
def shell_command = sh script: "ls -l", returnStdout: true
stage 'notify slack-notification'
slackSend channel: '#slack-notifications', color: 'good', message: shell_command, teamDomain: 'company', token: env.SLACK_TOKEN
}