如何在 Jenkins 中使用变量将自定义消息添加到 slack?

zse*_*cho 6 jenkins slack

我想在 Jenkins 构建这样的任务后发送松弛消息:

My_Job - #10 Success after 18 sec (Open)
My Report: http://my_domain/report_20181017195500.html
Run Code Online (Sandbox Code Playgroud)

Execute shell所以我尝试在Jenkins 的工作区域中设置这个变量:

...
DATE=`date '+%Y%m%d%H%M%S'`
MY_REPORT="report-$DATE.html"
Run Code Online (Sandbox Code Playgroud)

将其添加到Include Custom Message块的Slack Notifications

My Report: http://my_domain/${MY_REPORT}
Run Code Online (Sandbox Code Playgroud)

但是当我检查 Slack 频道时,它向我发送:

My_Job - #10 Success after 18 sec (Open)
My Report: http://my_domain/${MY_REPORT}
Run Code Online (Sandbox Code Playgroud)

这种情况下如何设置$MY_REPORT真实值呢?


编辑

我已经尝试过EnvInject 插件。将此代码设置为Execute shell块:

...
echo MY_REPORT=$(echo "http://my_domain/report-$DATE.html")  > /var/lib/jenkins/var.properties
Run Code Online (Sandbox Code Playgroud)

它可以从of块/var/lib/jenkins/var.properties中的which集合中读取值。但无法从 写入该文件。Inject environment variables to the build processBuild EnvironmentExecute shell

Wan*_*hai 1

你可以这样做:

slackSend channel: 'channel_name', message: 'My_Job - ' + BUILD_NUMBER + '\nMy_Report:' + JENKINS_URL
Run Code Online (Sandbox Code Playgroud)