我们在项目内部运行Hudson构建服务器。每次服务器部署新版本时,我们都会发送电子邮件。
我希望此电子邮件包含更多信息,包括用户名和构建原因。
从Parameterized builds上的hudsons文档中,已经为构建添加了文本参数。我在这里尝试两个不同的(为了看看哪些有效):
在作业配置This build is parameterized
中,我添加了以下两个变量
Name: USER
Default value: userCAPITALIZED
Name: user
Default value: userstandard
现在,在“可编辑电子邮件通知”的底部,我已经尝试了一切来检索这些值。
什么有效:所有标准Hudson构建变量都有效。与$CHANGES
,$SVN_REVISION
等
但是我试图在没有运气的情况下访问变量user
和USER
。这是一个不起作用的列表:
subject: test of parametrized mail 1user:${env.user}, 2USER:${USER}, 3$USER, 4${ENV, USER}, 5%USER%,stop
more tests
${env, user}
${env, USER}
${ENV, user}
${ENV, USER}
${user}
${USER}
${env.user}
${ENV.user}
${env.USER}
${ENV.USER}
$user
$USER
%user%
%USER%
changes $CHANGES
changes ${CHANGES}
subversion revision: $SVN_REVISION
subversion revision: ${SVN_REVISION}
这只会产生一封包含以下内容的电子邮件:
test of parametrized mail 1user:${env.user}, 2USER:${USER}, 3$USER, 4${ENV, USER}, 5%USER%,stop
more tests
${env, user}
${env, USER}
${ENV, user}
${ENV, USER}
${user}
${USER}
${env.user}
${ENV.user}
${env.USER}
${ENV.USER}
$user
$USER
%user%
%USER%
changes
changes
subversion revision: 400
subversion revision: 400
如您所见,只有subversion版本才能正确扩展。对于此特定作业,更改为空,因此请忽略它。
您如何在电子邮件中定义参数?有什么建议? 我正在使用Hudson版本1.395
答案 0 :(得分:14)
您需要使用类似这样的参数:${ENV, var="USER"}
'USER'与'user'相同 - 你需要给出不同的名字。
答案 1 :(得分:3)
除了Rene建议(也就是使用${ENV, var="USER"}
)之外,我相信你需要安装另一个plugin called 'email-ext'。
我在some other question中找到了这些信息(虽然没有接受的答案)。
答案 2 :(得分:0)
我知道这是一个老问题,但要求用户输入他们的用户名有点多余,而且可能会被欺骗。
Hudson已经知道是谁触发了构建(你可以在构建的页面中看到它),但它并没有将它暴露给变量。有一个Job-Exporter插件可以将此信息(以及更多)导出到工作区中的文件中。它将在build.user.name
属性下。
从那里,你可以使用EnvInject插件,为它提供这个导出的属性文件(hudsonBuild.properties
),你将有一个名为build.user.name
的环境变量可用于电子邮件为${ENV, var="build.user.name"}