Lately I was working on a Jenkins Pipeline file on a Gerrit enabled project.
To do some experiments in a pipeline project you have to mimic the checkout step.
I ended up with the following snippet to do live/experimental changes to a specific Gerrit change:
env.GERRIT_REFSPEC = 'refs/changes/47/11/2'
env.GERRIT_PATCHSET_REVISION = 'c72380cbb771fb97dd11404354834201a4d17a56'
node {
stage('Checkout') {
sh "env"
if(env.GERRIT_REFSPEC && env.GERRIT_PATCHSET_REVISION) {
println "$GERRIT_REFSPEC"
checkout([$class: 'GitSCM', branches: [[name: "$GERRIT_PATCHSET_REVISION"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'planets_gerrit_id_rsa', name: "", refspec: "$GERRIT_REFSPEC", url: 'ssh://gerrit@gerrit.datenkollektiv.de:12345/planets-simulation']]])
} else {
git url: 'git@git.datenkollektiv.de:planets-simulation', credentialsId: 'planets_id_rsa'
}
}
...
}
As I wasn't able to get this up and running easily I thought it might be worth sharing...
If you got so far you might also like our other Jenkins related posts:
▷ Programmatically add Environment Variables to a Jenkins Instance