问题
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..
- Bug with the plugin
- Issue with Jenkins setup/config
- Issue with GIT config in Github..
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)
回答1:
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.
回答2:
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:
- In the Source Code Management select the "Git" radio button and fill in the "Repository URL" and credentials as you would normally do.
- Click on the "Advanced ..." button, which will display a few additional fields and pull down menus
- From the "Additional Behaviours" pull down menu, select the "Custom user name/email address", which will provide two input fields for these settings.
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.
来源:https://stackoverflow.com/questions/25066567/git-plugin-for-jenkins-how-do-i-set-env-variables-git-author-email-and-git-comm