GitHub,Gerrit,Hudson(Jenkins)的工作流程

时间:2010-09-16 06:01:56

标签: continuous-integration triggers hudson github gerrit

我刚开始一起使用GitHub,Gerrit和Hudson(Jenkins)。我需要一些关于工作流程的想法。

我们想使用GitHub作为我们的主要远程仓库。我们主要使用Gerrit进行代码审查,还使用Hudson中的构建触发器。

目前,我在思考这个工作流程时遇到了一些麻烦,并希望听到其他人自己做了什么。想法?

2 个答案:

答案 0 :(得分:25)

我们正在使用githubgerritjenkinshudson的后继者)。我们将它与redmine绑在一起进行错误跟踪。

在gerrit之前,我们使用github作为主要的开发存储库,开发人员具有提交访问权限。现在我们已经运行了gerrit,github仅用作我们的发布存储库,只有gerrit用户可以访问推送到github。

的工作流程:

  1. 开发人员从github检出来源。
  2. 开发者进行更改。
  3. 开发人员推动gerrit。
  4. gerrit向jenkins发送变更通知以进行集成测试。
    • jenkins直接从gerrit git服务器获取更改。
    • on pass,jenkins在gerrit审核中添加+1,将评论传递给其他开发者。
    • 失败时,jenkins将-1添加到gerrit审核中
    • 通过/失败状态被推送到redmine
  5. 其他开发者审核更改,批准(+2)
  6. gerrit提交对github存储库的更改。
    • github hook通知redmine更新。
    • redmine从github中提取更改,解析提交消息以获取故障单信息。
  7. 开发人员从github获取更改...返回2. [编辑]:我们切换到直接从gerrit拉。 Github仍然是拉动生产资源的一面镜子。
  8. 缺少部分:

    1. 打结gerrit review to/from bug tracking

答案 1 :(得分:5)

我没有直接使用Gerrit,但我喜欢中间和专业回购之间的想法:

  • 您的开发者的回购
  • 中央GitHub远程仓库

因此,您需要确定要在远程GitHub存储库中发布的内容:

  • 要审核的代码(意味着本地Gerrit webapp会将GitHub代码拉出来进行检查)
  • 已经过审核的代码(意味着您首先将您的提​​交发布到Gerrit,并在代码审核后将其推送到GitHub)

第二个工作流程更接近Google Android Projects follows with Gerrit

在这两种情况下,都需要Gerrit检查的中间本地回购。