如何知道哪个用户 运行 在 Jenkinsfile 中构建

How to know which user run build in Jenkinsfile

我正在尝试获取 运行 在 Jenkinsfile 中构建的用户的名称:

...
user = User.current().getFullName()
...

但得到"SYSTEM"。 如何获得正确的用户名?

詹金斯 1.651.3

找到解决方案:

def build = currentBuild.rawBuild
def cause = build.getCause(hudson.model.Cause.UserIdCause.class)
def name = cause.getUserName()
echo "User: " + name

打印 运行 构建的用户名。

如果遇到"Scripts not allowed"这个也可以;

Install the Build User Vars plugin found here

...然后结束你的步骤,像这样:

steps {
    script {
        wrap([$class: 'BuildUser']) {

            var name = "${BUILD_USER}"
        }
    }
}