2010-12-19 57 views

回答

3

在电子邮件通知中使用环境变量(或任何变量)的最简单方法是使用Email-ext plugin

检查他们的“内容令牌参考”的具体细节,但总之你会得到更复杂的替代。下面是我经常使用的几个:

  • $ {ENV,var} - 显示环境 变量。
  • $ {BUILD_LOG_REGEX,regex,linesBefore,linesAfter,maxMatches,showTruncatedLines} - 显示构建日志中与正则表达式匹配的行。
  • $ {CHANGES_SINCE_LAST_SUCCESS,reverse,format,showPaths,changesFormat,pathFormat} - 显示自上次成功构建以来的更改。
  • $ {FAILED_TESTS} - 显示失败的单元测试信息,如果有任何测试失败。

该插件可以很容易地在Hudson配置中定义一个基础“全局”模板,然后在作业配置中“扩展”该模板 - 添加额外的细节。它还允许您根据构建状态/结果更细化地路由通知。

+0

我使用该插件解析它在电子邮件。重点是另一个允许我添加env变量的插件似乎并不是将该值“导出”到电子邮件插件中。 – Tim 2010-12-21 19:02:25

+0

我猜SetEnv-plugin的实现将变量注入每个构建步骤(Hudson为每个构建步骤使用一个新的外壳)。由于Email-ext没有创建单独的shell,因此我并不期望Email-ext插件具有其他环境变量。可能是一个有趣的插件功能要求。现在的问题是,什么需要改变什么插件,使其工作。 – 2010-12-21 19:12:48

+0

昨天我发现了一些有趣的事情 - 一个新的插件定义/要求正在制定。一个新的电子邮件插件,以取代核心和电子邮件插件。我添加了访问env vars的请求。 (http://wiki.hudson-ci.org/display/HUDSON/The+new+EMailer) – Tim 2010-12-21 19:18:33

2

这是可能的了。看起来你正在使用错误的语法。如前所述,email-ext插件具有访问环境变量的特定方法。尝试把这个在电子邮件正文代替:

${ENV, var=VARNAME} 

的另一种方法是使用Hudson的执行shell功能在生成和解析它使用BUILD_LOG_REGEX为呼应环境变量。

例如,你可以在执行shell部分有这样的:

echo "Output: ${VARNAME}" 

,并使用

${BUILD_LOG_REGEX, regex="^Output:", showTruncatedLines=false, substText=""} 
+0

也不起作用。 – Tim 2010-12-22 13:57:45

+0

对不起,你是对的,它应该是:$ {ENV,var =“VARNAME”} – 2010-12-22 15:36:54