gpt4 book ai didi

jenkins - 当计时器触发作业时,如何在 Jenkins 中获取 BUILD_USER?

转载 作者:行者123 更新时间:2023-12-03 01:15:58 29 4
gpt4 key购买 nike

我想在发布作业电子邮件中向触发 Jenkins 作业的用户显示。这可以通过使用插件Build User Vars Plugin和环境变量BUILD_USER来实现。但是当调度程序触发作业时,该变量不会被初始化。

我们怎样才能实现这一目标?我知道我们有一个名为 - EnvInject Plugin 的插件,可以使用...

但我只是想知道我们如何使用它并实现解决方案......

最佳答案

简单的解决方案(无插件)!!

方法1:通过Shell

BUILD_TRIGGER_BY=$(curl -k --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: "BUILD_BY=\$(curl -k --silent ${BUILD_URL}/api/xml | tr '<' '\n' | egrep '^userId>|^userName>' | sed 's/.*>//g' | sed -e '1s/\$/ \\/ /g'); if [[ -z \${BUILD_BY} ]]; then BUILD_BY=\$(curl -k --silent ${BUILD_URL}/api/xml | tr '<' '\n' | grep '^shortDescription>' | sed 's/.*user //g;s/.*by //g'); fi; echo \${BUILD_BY}", 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 和用户名

关于jenkins - 当计时器触发作业时,如何在 Jenkins 中获取 BUILD_USER?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36194316/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com