【问题标题】:Add SVN_AUTHOR and SVN_COMMIT_MESSAGE as env var in JENKINS在 JENKINS 中添加 SVN_AUTHOR 和 SVN_COMMIT_MESSAGE 作为环境变量
【发布时间】:2014-10-06 12:03:23
【问题描述】:
在我的 JENKINS 作业配置中,我会在构建完成后向开发人员发送一封电子邮件。
在这封邮件中我发送:$PROJECT_NAME$BUILD_NUMBER$BUILD_STATUS$BUILD_URL和$SVN_REVISION。
我使用 电子邮件扩展插件 v 2.38.1。
在我的电子邮件正文中,我想添加:SVN_AUTHOR 和 SVN_COMMIT_MESSAGE。
在 JENKINS 中不存在这样的环境变量。那么有可能创建它们吗?用什么插件?
伊斯梅尔
【问题讨论】:
标签:
java
svn
jenkins
continuous-integration
environment-variables
【解决方案1】:
点击Content Token Reference旁边的问号,它会告诉你很多你可以使用的东西。
试试这个:
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="<b>Changes for Build #%n</b><br>%c<br>", changesFormat="<br>[%a] - (%r) %p<br> %m<br>"}
这将产生如下输出:
版本 #123 的更改
[svn-author-name] - (svn-rev) 更改文件的路径
svn 提交信息在这里
这是文档中的相关部分:
格式 - 对于列出的每个提交,一个包含 %X 的字符串,其中 %X 是 %a 代表作者、%d 代表日期、%m 代表消息、%p 代表路径或 %r 代表修订版本之一。并非所有修订系统都支持 %d 和 %r。如果指定,则忽略 showPaths。
默认为“[%a] %m\n”。
以上内容与Email-ext plugin 相关,足以满足您在问题中描述的内容。
但是,如果您真的想将这些作为环境变量提供给其他构建步骤和/或脚本,您需要:
- 从您的 SCM 中手动提取它们(可能使用
svn log 命令和一些 grepping/sedding/awking)
- 将输出保存到文件,格式为
param=value
- 使用 EnvInject plugin 构建步骤将文件加载为其他构建步骤/脚本的环境变量