Gerrit trigger for Jenkins couldn't find any revision to build Gerrit trigger for Jenkins couldn't find any revision to build jenkins jenkins

Gerrit trigger for Jenkins couldn't find any revision to build


I used to have this problem and I think I have now fixed it, I am blaming the Jenkins UI for hiding some essential configuration elements ;)

Here is the output of my Jenkins build prior to the fix:

Triggered by Gerrit: https://bbpcode.epfl.ch/code/15056[EnvInject] - Loading node environment variables.Building remotely on rh6.6-02 (amd64-RedHatEnterpriseServer 6.6 RedHatEnterpriseServer amd64-RedHatEnterpriseServer-6.6 rh6.x RedHatEnterpriseServer-6.6 amd64) in workspace /var/tmp/jenkins/workspace/datamining.nip-commons.gerrit > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10Fetching changes from the remote Git repository > /usr/bin/git config remote.origin.url ssh://bbpcode.epfl.ch/datamining/nip-commons # timeout=10Fetching upstream changes from ssh://bbpcode.epfl.ch/datamining/nip-commons > /usr/bin/git --version # timeout=10 > /usr/bin/git fetch --tags --progress ssh://bbpcode.epfl.ch/datamining/nip-commons +refs/heads/*:refs/remotes/origin/* > /usr/bin/git rev-parse 74e4ff18f54bd6e046f7af016614193f566adfe4^{commit} # timeout=10ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.Started calculate disk usage of buildFinished Calculation of disk usage of build in 0 secondsStarted calculate disk usage of workspaceFinished Calculation of disk usage of workspace in 0 secondsFinished: FAILURE

SOLUTION

You will need to open your build configuration and go to the section 'Source Code Management' as shown below:

Git config with Advanced button

Now you will notice that there is a button 'Advanced', click it to reveal the extra fields as below:

Git config with refspec field revealed

Now you can type your refspec here: $GERRIT_REFSPEC

Now either retrigger a failed build or abandon reviews and submit a new one and it should be working.

Here is the output of the Jenkins job now that we have the appropriate refspec:

Retriggered by user kerrien for Gerrit: https://bbpcode.epfl.ch/code/15056[EnvInject] - Loading node environment variables.Building remotely on rh6.6-02 (amd64-RedHatEnterpriseServer 6.6 RedHatEnterpriseServer amd64-RedHatEnterpriseServer-6.6 rh6.x RedHatEnterpriseServer-6.6 amd64) in workspace /var/tmp/jenkins/workspace/datamining.nip-commons.gerrit > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10Fetching changes from the remote Git repository > /usr/bin/git config remote.origin.url ssh://bbpcode.epfl.ch/datamining/nip-commons # timeout=10Fetching upstream changes from ssh://bbpcode.epfl.ch/datamining/nip-commons > /usr/bin/git --version # timeout=10 > /usr/bin/git fetch --tags --progress ssh://bbpcode.epfl.ch/datamining/nip-commons refs/changes/56/15056/2 > /usr/bin/git rev-parse 74e4ff18f54bd6e046f7af016614193f566adfe4^{commit} # timeout=10Checking out Revision 74e4ff18f54bd6e046f7af016614193f566adfe4 (dev) > /usr/bin/git config core.sparsecheckout # timeout=10 > /usr/bin/git checkout -f 74e4ff18f54bd6e046f7af016614193f566adfe4 > /usr/bin/git rev-parse FETCH_HEAD^{commit} # timeout=10 > /usr/bin/git rev-list 2649d51369413cef4dfb7ec50939945005514cfa # timeout=10Cleaning workspace > /usr/bin/git rev-parse --verify HEAD # timeout=10Resetting working tree > /usr/bin/git reset --hard # timeout=10 > /usr/bin/git clean -fdx # timeout=10Triggering datamining.nip-commons.gerrit » defaultdatamining.nip-commons.gerrit » default completed with result SUCCESSStarted calculate disk usage of buildFinished Calculation of disk usage of build in  2 secondStarted calculate disk usage of workspaceFinished Calculation of disk usage of workspace in 0 secondsFinished: SUCCESS


  1. Leave the 'Branches to build > Branch specifier' field blank
  2. Click the Advanced button, and set a custom refspec:+refs/heads/feature/my-feature:refs/remotes/origin/feature/my-featureWith these settings, the plugin will correctly perform a fetch and then check out only the 'feature/my-feature' branch.


You could try to configure like that

  • Refspec = refs/changes/:refs/changes/
  • Branches to build = $GERRIT_REFSPEC

Follow the full configuration there

If you click "Build Now", Jenkins won't be able to get sources since $GERRIT_REFSPEC doesn't exist on that case.