如何根据Jenkins构建触发者,生成不同格式的Slack通知内容
Jenkins Groovy脚本:优化Slack构建触发者通知
需求回顾
原有脚本通过build-vars-plugin获取BUILD_USER_ID,向Slack发送触发者通知,现在需要针对不同触发场景优化显示:
- 当触发者为
name.surname格式(内部员工),自动添加统一邮箱后缀@example.com - 远程curl触发、定时cron触发时,保持原有显示内容不变
改写后的脚本
def startedBy = env.BUILD_USER_ID def emailSuffix = "@example.com" // 匹配name.surname格式的用户名(字母数字+点的组合) def namePattern = ~/^\w+\.\w+$/ def displayName = (startedBy ==~ namePattern) ? "${startedBy}${emailSuffix}" : startedBy def message = "\nJob started by: ${displayName}" return message
逻辑说明
- 直接获取
BUILD_USER_ID环境变量的值 - 定义统一的邮箱后缀常量,方便后续修改维护
- 使用正则表达式
^\w+\.\w+$匹配符合名.姓格式的用户名,确保仅对内部员工账号添加邮箱后缀 - 根据匹配结果决定最终显示的触发者名称,非匹配场景(如
remoteHost、timer)直接保留原内容 - 最后构造并返回Slack通知消息
内容的提问来源于stack exchange,提问作者azertykitty
相关产品推荐
相关产品推荐

