我想使用Mercurial / Jenkins为Continuous Integration场景实现以下工作流程

时间:2011-03-22 17:17:33

标签: mercurial continuous-integration jenkins

主存储库是所有开发人员签到的地方,让我们说它位于 http://hg.main.com:8000/project

现在,我们还有http://hg.qa.com:8000/project所有LATEST代码需要同步,PLUS测试和其他工件都在此存储库中。如果85%的测试都会通过,那么它只会被“推送”到中央存储库。

  1. 有更好的方法来实现这个吗?
  2. 我需要什么hg命令,以确保我不会覆盖最新的提交

1 个答案:

答案 0 :(得分:0)

从ilke开始: 审批管理:审计和质量保证

为谁?

如果您需要明确批准的代码历史记录以及使用开发人员团队和单独的QA团队的完整跟踪记录,则此工作流程可能适合您。

要求

你只需要Mercurial(命令行),一个用于交换数据的共享存储库(一个简单的SSH服务器就足够了,就像一个私有的bitbucket存储库一样)和GpgExtension。

流量

此工作流使用默认分支进行开发,以及使用QA命名分支和发布分支。

优点是将默认值合并到QA中需要显式合并,然后由负责它的开发人员进行GPG签名。

当QA完成应用他们的更改时,他们首先合并回默认值(以便开发人员使用QA版本)然后合并到发行版中,GPG签署合并提交。

  

开发

hg pull # get the latest changes
hg update
hg commit -m ""
hg update -C QA
hg merge default
hg commit -m "merged default branch for QA"
hg sign
hg push
  

QA

hg pull
hg update QA
hg commit -m "QA fixes"
hg update -C default
hg merge QA
hg ci -m "merged QA fixes back into the development branch"
hg update -C release
hg merge QA
hg commit -m "merged finished QA into release"
hg sign
  

修改

如果您需要的层数不仅仅是开发人员和QA,只需添加其他命名分支,例如在发布之前进行分段发布。

为了确保所有人都真正检查过代码,您可以要求所有头必须经过GnuPG签名才能进入更高级别的存储库。