是否可以在状态电子邮件中访问setenv hudson插件变量?

时间:2010-12-19 17:06:05

标签: hudson environment-variables hudson-plugins

我安装了SetEnv plugin,它可以在任务中获取变量。

不幸的是,当我尝试在结果状态电子邮件中使用env变量时,我根本没有运气。这应该有效吗?

我已经尝试了$ VARNAME和$ {VARNAME} - 这些都没有在电子邮件中正确替换。

3 个答案:

答案 0 :(得分: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配置中定义基础“全局”模板,然后在作业配置中“扩展”该模板 - 添加其他详细信息。它还允许您根据构建状态/结果更精细地路由通知。

答案 1 :(得分:2)

这已经可以了。看起来你使用了错误的语法。如前所述,email-ext插件具有访问环境变量的特定方法。请尝试将其放入电子邮件正文中:

${ENV, var=VARNAME}

另一种方法是使用Hudson的execute shell功能在构建期间回显环境变量,并使用BUILD_LOG_REGEX解析它。

例如,您可以在Execute Shell部分中使用它:

echo "Output: ${VARNAME}"

并使用

在电子邮件中解析它
${BUILD_LOG_REGEX, regex="^Output:", showTruncatedLines=false, substText=""}

答案 2 :(得分:0)