我刚开始一起使用GitHub,Gerrit和Hudson(Jenkins)。我需要一些关于工作流程的想法。
我们想使用GitHub作为我们的主要远程仓库。我们主要使用Gerrit进行代码审查,还使用Hudson中的构建触发器。
目前,我在思考这个工作流程时遇到了一些麻烦,并希望听到其他人自己做了什么。想法?
2 个答案:
答案 0 :(得分:25)
我们正在使用github,gerrit和jenkins(hudson的后继者)。我们将它与redmine绑在一起进行错误跟踪。
在gerrit之前,我们使用github作为主要的开发存储库,开发人员具有提交访问权限。现在我们已经运行了gerrit,github仅用作我们的发布存储库,只有gerrit用户可以访问推送到github。
的工作流程:
- 开发人员从github检出来源。
- 开发者进行更改。
- 开发人员推动gerrit。
- gerrit向jenkins发送变更通知以进行集成测试。
- jenkins直接从gerrit git服务器获取更改。
- on pass,jenkins在gerrit审核中添加+1,将评论传递给其他开发者。
- 失败时,jenkins将-1添加到gerrit审核中
- 通过/失败状态被推送到redmine
- 其他开发者审核更改,批准(+2)
- gerrit提交对github存储库的更改。
- github hook通知redmine更新。
- redmine从github中提取更改,解析提交消息以获取故障单信息。
- 开发人员从github获取更改...返回2. [编辑]:我们切换到直接从gerrit拉。 Github仍然是拉动生产资源的一面镜子。
醇>
缺少部分:
- 打结gerrit review to/from bug tracking。
醇>
答案 1 :(得分:5)
我没有直接使用Gerrit,但我喜欢中间和专业回购之间的想法:
因此,您需要确定要在远程GitHub存储库中发布的内容:
- 要审核的代码(意味着本地Gerrit webapp会将GitHub代码拉出来进行检查)
- 已经过审核的代码(意味着您首先将您的提交发布到Gerrit,并在代码审核后将其推送到GitHub)
第二个工作流程更接近Google Android Projects follows with Gerrit。
在这两种情况下,都需要Gerrit检查的中间本地回购。