我在Groovy的Jenkins中有一个代码,它向Slack发送通知,并提供谁开始构建的信息:
def startedBy = "${env.BUILD_USER_ID}"
def message = "\nJob started by: ${startedBy}"
return message
我使用的是build-vars-plugin
有三种变体:
- 如果通过UI启动构建或由另一个触发,启动管道=则我看到
Job started by: john.doe
- 如果通过curl =开始构建,则会看到
Job started by: remoteHost
- 通过cron =启动fi构建,然后我看到
Job started by: timer
我如何重写脚本,以便我可以看到:
Job started by: john.doe@example.com
每当值由两个字段组成时name.surname
+我为公司中所有人员添加相同邮件Job started by: remoteHost
(由curl远程启动时)Job started by: timer
(由cron启动时)
1条答案
按热度按时间6za6bjd01#
我看有两个办法可以解决:
1.正如您所说的,我们可能依赖于这样一个事实,即您的用户总是使用
{forename}.{surname}
,然后我们应该尝试将BUILD_USER_ID
值拆分为.
,并检查是否存在两部分。1.我们还可以依赖于这两个用户ID
remoteHost
和timer
是恒定的并且排除它们。两个版本我都实现了,看看username为
tommy
的情况,函数返回的结果不一样。我希望它能帮助你继续前进。