16

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

我们想使用 GitHub 作为我们的主要远程仓库。我们希望将 Gerrit 主要用于代码审查,但也用于在 Hudson 中构建触发器。

不过,目前,我在思考这方面的工作流程时遇到了一些麻烦,我想听听其他人自己做了什么。想法?

4

2 回答 2

26

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

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

工作流程:

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

缺失的部分:

  1. 一块将gerrit审查与错误跟踪联系起来。
于 2011-09-30T22:03:44.380 回答
5

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

  • 你的开发者的仓库
  • 中央 GitHub 远程仓库

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

  • 要审查的代码(意味着本地 Gerrit webapp 会拉取 GitHub 代码进行审查)
  • 经过审查的代码(意味着您首先将提交发布到 Gerrit,然后在代码审查后将它们推送到 GitHub)

第二个工作流程更接近Google Android Projects 使用 Gerrit 所遵循的工作流程。

在这两种情况下,都需要一个中间本地 repo 供 Gerrit 检查。

于 2010-09-16T06:26:12.037 回答