13

构建完成后,我使用 mail-ext-plugin(Jenkins 电子邮件扩展插件)向某些用户发送电子邮件。我想在该邮件中包含开始(请求)构建的用户。- 我找不到任何适用于默认 Jenkins 变量的东西。- 我在邮件分机变量中找不到任何内容。- 我尝试构建用户变量插件来获取 $BUILD_USER

但我无法让它工作。

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

现在我有

$DEFAULT_CONTENT

--

{$BUILD_USER}

导致

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

--

{$BUILD_USER}

也试过没有 {}

4

4 回答 4

14

我终于找到了我想要的,添加:

$CAUSE

或者

${CAUSE}

Started by user Jan Jansen
于 2012-10-11T09:20:30.237 回答
5

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

在过去几年中,Email-ext Jenkins 插件发生了许多变化,这会影响这个问题 - 例如,在 v2.38(2014 年 5 月 24 日)中:

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

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

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

詹金斯截图

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

于 2017-01-06T10:01:48.020 回答
2

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

方法1:通过Shell

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 和用户名

于 2020-02-27T19:42:07.383 回答
1

在您的示例中,{$BUILD_USER}应该是${BUILD_USER}
但即使这样,除非您安装此插件,否则它也无法工作:

构建用户变量插件

它为您提供以下变量:

  • BUILD_USER – 用户开始构建的全名,
  • BUILD_USER_FIRST_NAME – 用户开始构建的名字,
  • BUILD_USER_LAST_NAME – 用户开始构建的姓氏,
  • BUILD_USER_ID – 用户开始构建的 ID。

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

于 2012-10-12T17:17:57.967 回答