Jenkins下游任务成功后如何将Bitbucket提交信息作为邮件正文发送
核心原因说明
Jenkins 内置 Git 环境变量 $GIT_COMMIT 存储的是本次构建对应 Git 提交的哈希值,并非提交信息,所以你之前输出的哈希字符串属于该变量的预期返回结果,需要自行通过命令拉取对应提交的信息内容。
解决方案步骤
1. 第1个任务获取原始提交信息
在第1个任务的「执行Shell」构建步骤中添加如下命令,通过提交哈希拉取对应提交信息:
# 拉取当前提交的完整提交信息 COMMIT_MSG=$(git log --format=%B -n 1 $GIT_COMMIT) # 将变量写入属性文件,用于环境变量注入 echo "COMMIT_MSG=${COMMIT_MSG}" > commit_info.properties
在第1个任务中安装环境变量注入插件,在「构建后操作」选择「注入环境变量到构建进程」,属性文件路径填写commit_info.properties,保存后第1个任务的构建环境中就会存在COMMIT_MSG变量,值为你需要的原始提交信息。
2. 跨任务传递提交信息变量
因为你的5个任务是串联触发的,需要在每个上游任务触发下游任务时传递该变量:
- 打开第1/2/3/4号任务的配置页,在「构建后操作」的「触发其他项目构建」配置项中,勾选「传递构建变量到被调用项目」,并在「预定义参数」栏添加如下内容:
COMMIT_MSG=${COMMIT_MSG}
配置完成后,提交信息变量会顺着任务链路一直传递到第5个任务。
3. 第5个任务发送邮件调用变量
第5个任务执行成功后,在邮件发送配置的正文模板中直接引用${COMMIT_MSG}变量,即可将原始提交信息原样发送给收件人。
内容的提问来源于stack exchange,提问作者Mayur
相关产品推荐
相关产品推荐

