【问题标题】:Auto-submit reviews, if verified and approved自动提交评论,如果验证和批准
【发布时间】:2015-03-11 22:20:34
【问题描述】:

我有 Gerrit 2.5 服务器和 Jenkins 服务器(带有 Gerrit 触发器)。

对于一些分支,我配置了 Jenkins Gerrit Trigger,如果构建和测试成功,它不仅会验证而且还会批准评论。

我的问题是:如何配置 Gerrit 或 Jenkins,以便 Jenkins 验证和批准的审核自动合并?

尝试过的解决方案:

  • 使用“Post Build Task”Jenkins 插件添加一个脚本来合并评论(如Gerrit - how to auto publish change after Jenkins run 中所建议的那样)。问题:它将构建与失败的测试合并。
  • 添加 Gerrit “comment-added” 钩子进行检查,如果审核通过验证并批准,则合并。问题:很复杂,不能很好地配置为只从指定的分支自动提交。

【问题讨论】:

    标签: jenkins gerrit


    【解决方案1】:

    我找到的解决方案是使用 Groovy Postbuild 插件。在 JUnit 后期构建操作之后执行的以下脚本可以解决问题:

    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 ..."
    

    【讨论】:

    • $GIT_COMMIT 的内容是什么?
    • 应该是提交ID。你可以打印出来添加manager.listener.logger.println("GIT_COMMIT : '$GIT_COMMIT'")
    【解决方案2】:

    这是我目前使用 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")
    }
    

    【讨论】:

      猜你喜欢
      • 2011-11-19
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多