在jenkins邮件中包含构建请求用户

时间:2012-10-11 08:57:31

标签: jenkins jenkins-plugins

构建完成后,我使用mail-ext-plugin(Jenkins Email Extension Plugin)向某些用户发送电子邮件。 我想包括在该邮件中启动(请求)构建的用户。 - 我找不到任何与默认Jenkins vars一起工作的东西。 - 我在mail-ext vars中找不到任何东西。 - 我尝试使用Build User Vars插件获取$ BUILD_USER

但我无法让它发挥作用。

如何到达$ BUILD_USER,BUILD_REQUESTER,USERNAME或类似的东西

现在我有

$DEFAULT_CONTENT

--

{$BUILD_USER}

导致

zzz test GreenHat - Build # 27 - Still Failing:
Check console output....

--

{$BUILD_USER}

也试过没有{}

4 个答案:

答案 0 :(得分:10)

我终于找到了我想要的东西, 中加入:

$CAUSE

${CAUSE}

给出

Started by user Jan Jansen

答案 1 :(得分:2)

我知道我在这里回答了一个有4年之久的问题,但谷歌把我带到了这里,所以其他人可能会发现这些信息很有用......

过去几年中,有很多changes来自Email-ext Jenkins插件,这会影响这个问题 - 例如,在v2.38(2014年5月24日)中:

  

为收件人提供商(RecipientProvider)实施新的扩展点,这会更改添加收件人类型的方式

     

“请求者”“收件人”等不再有复选框,每个复选框都由RecipientProvider的实现提供

使用最新版本的插件,如果您希望向触发构建的用户发送电子邮件,您只需从“发送至”触发器选项中选择“请求者”:

jenkins screenshot

“收件人列表”是一个硬编码列表,您也可以为该作业定义。

答案 2 :(得分:1)

在您的示例中,{$BUILD_USER}应为${BUILD_USER}
但即使这样,除非你安装这个插件,否则它将无法工作:

Build User Vars Plugin

它为您提供以下变量:

  • BUILD_USER - 用户启动构建的全名,
  • BUILD_USER_FIRST_NAME - 用户启动构建的第一个名称,
  • BUILD_USER_LAST_NAME - 用户启动构建的姓氏,
  • BUILD_USER_ID - 用户启动构建的ID。

(有关详细信息,请参阅插件页面)

答案 3 :(得分:0)

简单的解决方案(没有任何插件/没有插件)!

方法1:通过外壳

BUILD_TRIGGER_BY=$(curl --silent ${BUILD_URL}/api/xml | tr '<' '\n' | egrep '^userId>|^userName>' | sed 's/.*>//g' | sed -e '1s/$/ \//g' | tr '\n' ' ')
echo "BUILD_TRIGGER_BY: ${BUILD_TRIGGER_BY}"

方法2:通过Groovy

node('master') {
BUILD_TRIGGER_BY = sh ( script: "curl --silent ${BUILD_URL}/api/xml | tr '<' '\n' | egrep '^userId>|^userName>' | sed 's/.*>//g' | sed -e '1s/\$/ \\/ /g'", returnStdout: true ).trim()
echo "BUILD_TRIGGER_BY: ${BUILD_TRIGGER_BY}"
}

方法3:通过Groovy

BUILD_TRIGGER_BY = "${currentBuild.getBuildCauses()[0].shortDescription} / ${currentBuild.getBuildCauses()[0].userId}"
echo "BUILD_TRIGGER_BY: ${BUILD_TRIGGER_BY}"

输出:

Started by user Admin / user@example.com

注意:输出将同时是用户ID和用户名