Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to know which user run build in Jenkinsfile

I am trying to get the name of the user that's running a build in Jenkinsfile:

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

but get "SYSTEM". How get correct username?

Jenkins 1.651.3

like image 252
burtsevyg Avatar asked Nov 15 '25 01:11

burtsevyg


2 Answers

Found solution:

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

print name of user which run build.

like image 130
burtsevyg Avatar answered Nov 17 '25 22:11

burtsevyg


If you encounter "Scripts not allowed" this also works;

Install the Build User Vars plugin found here

... then wrap your step, something like this:

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

            var name = "${BUILD_USER}"
        }
    }
}
like image 37
user11606 Avatar answered Nov 17 '25 22:11

user11606