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

Jos*_*ith 16 continuous-integration triggers hudson github gerrit

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

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

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

spa*_*azm 25

我们使用github上,格里特詹金斯(继任哈德森).我们将它与redmine结合在一起进行错误跟踪.

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

工作流程:

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

缺件:

  1. 片断将gerrit评论与bug跟踪联系起来.

  • 这是一个很棒的工作流程; 你有没有在Confluence(或其他一些wiki)中对设置进行彻底的逐步记录?这将是非常偶然的,并将启动我们的努力以获得类似的东西.意识到这是一个很长的镜头,但值得一提! (3认同)

Von*_*onC 5

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

  • 你的开发者的回购
  • 中央GitHub远程回购

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

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

第二个工作流程更接近谷歌Android项目跟Gerrit的关注.

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