Reputation: 141
I have been trying to set the environment variables GIT_AUTHOR_EMAIL
and GIT_COMMITTER_EMAIL
so that the GIT plugin for Jenkins claims to be setting(https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin).
I see that the rest of the environment variables viz. GIT_URL
, GIT_BRANCH
, GIT_COMMIT
, GIT_PREVIOUS_COMMIT
are set accurately for each of the jenkins jobs.
I am testing this by printing out all the environment variables in a jenkins jobs shell script build step by using printenv
.
Can somebody please let me know if I am missing something here ? Here are few of the possible reasons that I could think of..
Please help me in this regard.
Thanks!
p.s. I also saw a similar question is left unanswered (Github-plugin for Jenkins get committer and author name)
Upvotes: 14
Views: 10045
Reputation: 8934
In reality these variables are available just when you overwrite the Author Name and Author Email on the Advanced features of the SCM configuration.
"Additional Behaviours" -> "Custom user name/email address"
This is described on the source code: https://github.com/jenkinsci/git-plugin/tree/master/src/main/java/hudson/plugins/git
Solution: In order to retrieve the author name and email I suggest scripting this:
GIT_NAME=$(git --no-pager show -s --format='%an' $GIT_COMMIT)
GIT_EMAIL=$(git --no-pager show -s --format='%ae' $GIT_COMMIT)
Being $GIT_COMMIT
the SHA1 commit id.
Upvotes: 11
Reputation: 523
GIT_AUTHOR_EMAIL and GIT_COMMITTER_EMAIL are not automatically setup from the plugin. These are variables that YOU can setup in the individual job or at system level.
To setup these variables on a specific job, do the following:
You can set these variables at system level by selecting "Manage Jenkins" >> "Configure System" and then entering values for the user.name and user.email in the "Git plugin" section of the configuration page.
Upvotes: 0