Situation
Sometimes it is desirable to run build against specific Gerrit change.
Resolution (since 6.0.25)
- Define a variable say "change", with prompt setting set to prompt as selection box, with below choice:
${groovy: // assume your Gerrit repository defined at QuickBuild side is named "gerrit" def repo = repositories.get("gerrit"); def choices = ""; for (each in repo.getOpenChanges()) { choices += each.customData.changeNo + ": " + each.customData.subject + ","; \} return choices; }
This setting will prompt user with a list of Gerrit open changes for selection.
- Set up Gerrit repository at QuickBuild side and configure field change numbers as below:
${groovy: import com.pmease.quickbuild.util.StringUtils; def change = vars.getValue("change"); if (change != null) return StringUtils.substringBefore(change, ":"); else return ""; }
This tells QB to build against selected change in above step.
- Make sure option "Queue Changed Branches Only" in advanced configuration setting is set to no, as otherwise, QB will not run build even if change number is specified if a build has already been fired for a change.