What environment variables are passed to Jenkins when using the Gerrit Trigger Plugin?

后端 未结 6 966
刺人心
刺人心 2020-12-14 11:46

I\'m using the Gerrit Trigger Plugin to kick off Jenkins builds, but haven\'t found a good place where all of the environment variables are documented. Does such documentat

相关标签:
6条回答
  • 2020-12-14 11:48

    trigger shell job with just one line:

    env | grep GERRIT_
    

    and see the Build Log

    0 讨论(0)
  • 2020-12-14 11:53

    Thank your for your share. I find the GerritTriggerParameters.java on GitHub. and I write the shell-script to print the gerrit-trigger variables.

    #!/bin/bash
    # ============================================================
    #  Author: 凍仁翔 / chusiang.lai (at) gmail.com
    #  Blog: http://note.drx.tw
    #  Filename: showGerritTriggerVar.sh
    #  Description: show all variables of Gerrit Trigger.
    #  Last modified: 2014-08-28 14:40
    # =========================================================== 
    
    
    echo -e "----
    # Parameter name for the commit subject (commit message's 1st line).
    \$GERRIT_CHANGE_SUBJECT = ${GERRIT_CHANGE_SUBJECT}
    
    # Parameter name for the full commit message.
    \$GERRIT_CHANGE_COMMIT_MESSAGE = ${GERRIT_CHANGE_COMMIT_MESSAGE}
    
    # Parameter name for the branch.
    \$GERRIT_BRANCH = ${GERRIT_BRANCH}
    
    # Parameter name for the topic.
    \$GERRIT_TOPIC = ${GERRIT_TOPIC}
    
    # Parameter name for the change-id.
    \$GERRIT_CHANGE_ID = ${GERRIT_CHANGE_ID}
    
    # Parameter name for the change number.
    \$GERRIT_CHANGE_NUMBER = ${GERRIT_CHANGE_NUMBER}
    
    # Parameter name for the URL to the change.
    \$GERRIT_CHANGE_URL = ${GERRIT_CHANGE_URL}
    
    # Parameter name for the patch set number.
    \$GERRIT_PATCHSET_NUMBER = ${GERRIT_PATCHSET_NUMBER}
    
    # Parameter name for the patch set revision.
    \$GERRIT_PATCHSET_REVISION = ${GERRIT_PATCHSET_REVISION}
    
    # Parameter name for the Gerrit project name.
    \$GERRIT_PROJECT = ${GERRIT_PROJECT}
    
    # Parameter name for the refspec.
    \$GERRIT_REFSPEC = ${GERRIT_REFSPEC}
    
    # The name and email of the abandoner of the change.
    \$GERRIT_CHANGE_ABANDONER = ${GERRIT_CHANGE_ABANDONER}
    
    # The name of the abandoner of the change.
    \$GERRIT_CHANGE_ABANDONER_NAME = ${GERRIT_CHANGE_ABANDONER_NAME}
    
    # The email of the abandoner of the change.
    \$GERRIT_CHANGE_ABANDONER_EMAIL = ${GERRIT_CHANGE_ABANDONER_EMAIL}
    
    # The name and email of the owner of the change.
    \$GERRIT_CHANGE_OWNER = ${GERRIT_CHANGE_OWNER}
    
    # The name of the owner of the change.
    \$GERRIT_CHANGE_OWNER_NAME = ${GERRIT_CHANGE_OWNER_NAME}
    
    # The email of the owner of the change.
    \$GERRIT_CHANGE_OWNER_EMAIL = ${GERRIT_CHANGE_OWNER_EMAIL}
    
    # The name and email of the restorer of the change.
    \$GERRIT_CHANGE_RESTORER = ${GERRIT_CHANGE_RESTORER}
    
    # The name of the restorer of the change.
    \$GERRIT_CHANGE_RESTORER_NAME = ${GERRIT_CHANGE_RESTORER_NAME}
    
    # The email of the restorer of the change.
    \$GERRIT_CHANGE_RESTORER_EMAIL = ${GERRIT_CHANGE_RESTORER_EMAIL}
    
    # The name and email of the uploader of the patch-set.
    \$GERRIT_PATCHSET_UPLOADER = ${GERRIT_PATCHSET_UPLOADER}
    
    # The name of the uploader of the patch-set.
    \$GERRIT_PATCHSET_UPLOADER_NAME = ${GERRIT_PATCHSET_UPLOADER_NAME}
    
    # The email of the uploader of the patch-set.
    \$GERRIT_PATCHSET_UPLOADER_EMAIL = ${GERRIT_PATCHSET_UPLOADER_EMAIL}
    
    # The name and email of the person who triggered the event.
    \$GERRIT_EVENT_ACCOUNT = ${GERRIT_EVENT_ACCOUNT}
    
    # The name of the person who triggered the event.
    \$GERRIT_EVENT_ACCOUNT_NAME = ${GERRIT_EVENT_ACCOUNT_NAME}
    
    # The email of the person who triggered the event.
    \$GERRIT_EVENT_ACCOUNT_EMAIL = ${GERRIT_EVENT_ACCOUNT_EMAIL}
    
    # The refname in a ref-updated event.
    \$GERRIT_REFNAME = ${GERRIT_REFNAME}
    
    # The old revision in a ref-updated event.
    \$GERRIT_OLDREV = ${GERRIT_OLDREV}
    
    # The new revision in a ref-updated event.
    \$GERRIT_NEWREV = ${GERRIT_NEWREV}
    
    # The submitter in a ref-updated event.
    \$GERRIT_SUBMITTER = ${GERRIT_SUBMITTER}
    
    # The name of the submitter in a ref-updated event.
    \$GERRIT_SUBMITTER_NAME = ${GERRIT_SUBMITTER_NAME}
    
    # The email of the submitter in a ref-updated event.
    \$GERRIT_SUBMITTER_EMAIL = ${GERRIT_SUBMITTER_EMAIL}
    
    # The name of the Gerrit instance.
    \$GERRIT_NAME = ${GERRIT_NAME}
    
    # The host of the Gerrit instance.
    \$GERRIT_HOST = ${GERRIT_HOST}
    
    # The port number of the Gerrit instance.
    \$GERRIT_PORT = ${GERRIT_PORT}
    
    # The protocol scheme of the Gerrit instance.
    \$GERRIT_SCHEME = ${GERRIT_SCHEME}
    
    # The version of the Gerrit instance.
    \$GERRIT_VERSION = ${GERRIT_VERSION}
    
    # A hashcode of the Gerrit event object to make sure every set of parameters
    # is unique (allowing jenkins to queue duplicate builds).
    \$GERRIT_EVENT_HASH = ${GERRIT_EVENT_HASH}
    
    # The type of the event.
    \$GERRIT_EVENT_TYPE = ${GERRIT_EVENT_TYPE}
    "
    
    0 讨论(0)
  • 2020-12-14 11:59

    They are listed in the help text for the trigger; the little question mark next to the trigger checkbox on the job config page.

    0 讨论(0)
  • 2020-12-14 12:06

    As a start, I had a Jenkins build shell script dump all environment variables with GERRIT in the name:

    GERRIT_PATCHSET_UPLOADER=\"Alan Thompson\" <theEmail@gmail.com>
    GERRIT_PATCHSET_REVISION=eec3b0b65fcdf30872befa2e9ace06e96cd487b4
    GERRIT_CHANGE_ID=Ieec3b0b65fcdf30872befa2e9ace06e96cd487b4
    GERRIT_PATCHSET_NUMBER=1
    GERRIT_EVENT_ACCOUNT_EMAIL=theEmail@gmail.com
    GERRIT_CHANGE_NUMBER=8
    GERRIT_CHANGE_OWNER=\"Alan Thompson\" <theEmail@gmail.com>
    GERRIT_REFSPEC=refs/changes/08/8/1
    GERRIT_EVENT_TYPE=change-merged
    GERRIT_EVENT_ACCOUNT=\"Alan Thompson\" <theEmail@gmail.com>
    GERRIT_CHANGE_SUBJECT=toast:  this is great with coffee
    GERRIT_CHANGE_OWNER_NAME=Alan Thompson
    GERRIT_PROJECT=kitchen
    GERRIT_EVENT_HASH=-1357519550
    GERRIT_BRANCH=master
    GERRIT_CHANGE_OWNER_EMAIL=theEmail@gmail.com
    GERRIT_PATCHSET_UPLOADER_EMAIL=theEmail@gmail.com
    GERRIT_CHANGE_URL=http://localhost/8
    GERRIT_PATCHSET_UPLOADER_NAME=Alan Thompson
    GERRIT_EVENT_ACCOUNT_NAME=Alan Thompson
    
    0 讨论(0)
  • 2020-12-14 12:08

    The exact answer can be found in the source here and there is at least some source code comments describing what it means.

    0 讨论(0)
  • 2020-12-14 12:15

    Really important information, for anyone who bashed their head against the monitor like I did. There was a security update for Jenkins in May 2016 which doesn't allow arbitrary parameters unless they're defined in the job configuration:

    https://wiki.jenkins-ci.org/display/JENKINS/Plugins+affected+by+fix+for+SECURITY-170

    The parameters defined by Alan Thompson are correct, but you also need to define those parameters in the job configuration.

    0 讨论(0)
提交回复
热议问题