即使在下游项目中,如何才能在 Jenkins Job 中获取启动用户?

问题描述 投票:0回答:2

在jenkins job shell中,我想获取在shell中启动构建的用户,我该怎么做?

如果此作业是由用户启动的,则构建用户变量插件可以很好地工作,而它是由其他作业(例如上游作业)触发的,则它不起作用。像

$BUILD_USER
这样的值是空的。

请参阅该页面中作者“Gavriil”的评论

这不是一个错误。仅在以下情况下才能识别构建用户: 构建由用户启动。如果构建是由其他原因触发的,例如 通过计时器或上游作业结束

虽然在作业控制台中,其实我可以看到用户信息

Started by upstream project "arctifact2slave" build number 16
originally caused by: 
Started by upstream project "create-vm" build number 5
originally caused by: 
Started by user larrycai

有什么建议

jenkins jenkins-plugins
2个回答
6
投票

我不太确定你到底想要实现什么,但根据我的理解,你可以执行以下操作。

  • 将字符串参数添加到您的根作业中。影响它的是BUILD_USER变量值。即:

    ${BUILD_USER}

  • 然后只需在“构建后操作 -> 在其他项目上触发参数化构建”部分中传递当前构建参数即可。

后续作业将能够读取该变量。


0
投票

我有同样的问题,我已经找到了解决方案

为此,请确保插件“BUILD USR VARS”已安装并配置

在您的上游项目/作业中,转到构建环境并检查该选项是否已选中

设置jenkins用户构建变量(这是将BUILD_USER变量传递给其他项目的关键)

然后进行构建后操作并选择

在其他项目上触发参数化作业

在其下选择您的下游项目名称

然后,点击添加参数 -> 条件参数

在其中输入值 BUILD_USER=$BUILD_USER

这会将您的构建用户传递给您的下游作业

转到您的下游项目/工作

勾选选项此项目已参数化(不确定这是否是强制性的)

那么,

您可以在构建操作中打印 BUILD_USER 变量,或者可以将其添加为电子邮件内容(如 $BUILD_USER)并查看结果。

祝你有美好的一天!

© www.soinside.com 2019 - 2024. All rights reserved.