在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
有什么建议
我不太确定你到底想要实现什么,但根据我的理解,你可以执行以下操作。
将字符串参数添加到您的根作业中。影响它的是BUILD_USER变量值。即:
${BUILD_USER}
然后只需在“构建后操作 -> 在其他项目上触发参数化构建”部分中传递当前构建参数即可。
后续作业将能够读取该变量。
我有同样的问题,我已经找到了解决方案
为此,请确保插件“BUILD USR VARS”已安装并配置
在您的上游项目/作业中,转到构建环境并检查该选项是否已选中
设置jenkins用户构建变量(这是将BUILD_USER变量传递给其他项目的关键)
然后进行构建后操作并选择
在其他项目上触发参数化作业
在其下选择您的下游项目名称
然后,点击添加参数 -> 条件参数
在其中输入值 BUILD_USER=$BUILD_USER
这会将您的构建用户传递给您的下游作业
转到您的下游项目/工作,
勾选选项此项目已参数化(不确定这是否是强制性的)
那么,
您可以在构建操作中打印 BUILD_USER 变量,或者可以将其添加为电子邮件内容(如 $BUILD_USER)并查看结果。
祝你有美好的一天!