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:
Now you will notice that there is a button 'Advanced', click it to reveal the extra fields as below:
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
- Leave the 'Branches to build > Branch specifier' field blank
- 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.