如何在电子邮件中使用Hudson“参数化构建”值

7
我们在项目内部运行了一个Hudson构建服务器。每次服务器部署新版本时,我们会发送电子邮件通知。
我希望这封电子邮件包含更多信息,包括用户名和构建原因。
根据Hudson的文档,在参数化构建中,我已经向构建添加了文本参数。我正在尝试使用两个不同的参数(以查看哪个有效):
在作业配置中的“此构建是参数化的”中,我添加了以下两个变量。
Name:          USER 
Default value: userCAPITALIZED

Name:          user
Default value: userstandard

请参考以下屏幕截图:parameterized settings
(图片来源: justaddwater.dk)
在底部的 "可编辑电子邮件通知" 部分中,我已经尝试了所有方法以检索这些值。
以下是有效的变量:所有标准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}

电子邮件配置截图
(来源:justaddwater.dk)

这只是生成了一封此内容的电子邮件:

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。


这个问题因为没有投票和回答而让我获得了“飘草”徽章。因此,我现在开始设置悬赏以了解有关Hudon电子邮件配置的更多可能性。 - Jesper Rønn-Jensen
3个回答

14

您需要使用这样的参数: ${ENV, var="USER"}

'USER'和'user'是相同的 - 您需要给它们不同的名称。


非常感谢这个。我期待着下周在工作中尝试它。 - Jesper Rønn-Jensen

3
除了Rene建议的使用${ENV, var="USER"}之外,我认为您还需要安装另一个名为“email-ext”的插件。我在其他问题中找到了这些信息(尽管没有被接受的答案)。

谢谢提醒。我忘记写插件是必需的(无论如何,我指的是它的配置设置)。 - Jesper Rønn-Jensen

0

我知道这是一个老问题,但要求用户输入他们的用户名有点多余,而且可以被欺骗。

Hudson已经知道是谁触发了构建(您可以在构建页面中看到它),但它不会将此暴露为变量。有一个Job-Exporter插件,可以将此信息(以及更多信息)导出到工作区中的文件中。它将位于build.user.name属性下。

从那里,您可以使用EnvInject插件,向其提供此导出的属性文件(hudsonBuild.properties),然后您将拥有一个名为build.user.name的环境变量可用于电子邮件中,如${ENV,var="build.user.name"}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接