我有Gerrit 2.5服务器和Jenkins服务器(带Gerrit Trigger)。
对于某些分支机构,我配置了Jenkins Gerrit Trigger,如果构建和测试成功,它不仅会验证,还会批准审核。
我的问题是:如何配置Gerrit或Jenkins,Jenkins经过验证和批准的评论会自动合并?
尝试过的解决方案:
答案 0 :(得分:3)
我找到的解决方案是使用Groovy Postbuild插件。在JUnit post build操作之后执行以下脚本可以解决问题:
if(manager.build.result.isBetterThan(hudson.model.Result.UNSTABLE)) {
def cmd = 'ssh -p 29418 HOST gerrit review --verified +1 --code-review +2 --submit --project $GERRIT_PROJECT $GIT_COMMIT'
cmd = manager.build.environment.expand(cmd)
manager.listener.logger.println("Merge review: '$cmd'")
def p = "$cmd".execute()
manager.listener.logger.println(p.in.text)
manager.addShortText("M")
}
您的Jenkins帐户需要+1验证,+ 2审核并提交权限。您还必须设置公钥身份验证。
在Windows上:您可以使用以下命令从git发行版运行ssh
"C:\Program Files (x86)\Git\bin\sh.exe" --login -c "ssh -p 29418 HOST ..."
答案 1 :(得分:3)
这是使用gerrit 2.10-rc0
的当前工作命令if(manager.build.result.isBetterThan(hudson.model.Result.UNSTABLE)) {
def cmd = 'ssh -p 29418 $host gerrit review --verified +1 --code --review +2 --submit $GERRIT_CHANGE_NUMBER,$GERRIT_PATCHSET_NUMBER'
cmd = manager.build.environment.expand(cmd)
manager.listener.logger.println("Merge review: '$cmd'")
def p = "$cmd".execute()
manager.listener.logger.println(p.in.text)
manager.addShortText("M")
}