因此,我尝试在Jenkinsfile中使用slackSend在通道上发布构建状态,并尝试显式定义所有内容,如下所示-(出于某种原因,我必须这样定义它)
WithCredentials([string(credentialsId: 'theSlackToken', variable: 'slackCredentials')]) {
slackSend (channel: '@johnsmith', message: 'hello there', color: '#3eb991', failOnError: true, teamDomain: 'myteamsubdomain', token: slackCredentials)
}
但是,当我在Jenkinsfile中使用上面这些行时,我得到错误消息,说没有这样的DSL方法字符串。
请帮助我将高度赞赏任何建议。
1条答案
按热度按时间ivqmmu1c1#
这里有几个问题:
1.首先,要使命令正常工作,不应使用“withCredentials”,您只需要credentialsId,然后将其设置为tokenCredentialId,如下所示:
slackSend (channel: '@johnsmith', message: 'hello there', color: '#3eb991'
重要提示:凭据应为密文!!!
1.没有必要在每个slackSend命令中使用tokenCredentialId,您可以将其设置为该Jenkins的通用slack令牌。通过Jenkins -〉manage Jenkins -〉Configure System,然后查找Slack,并输入您要使用的令牌的正确凭据。然后您可以用途:
slackSend (channel: '@johnsmith', message: 'hello there', color: '#3eb991'
个1.在slack命令中使用tokenCredentialId允许覆盖当前的全局令牌,这样您就可以在Jenkins内部的slack应用程序之间切换。
如需更多信息:https://plugins.jenkins.io/slack/