持续集成中的六步提交

6
http://www.continuousdelivery.info 什什什“什什什什什什什”• “ 什什什什什什”什什什什什什什什什什什什什什什什什什什什什什什• 什什什什什什什什 什什什什什什什什什 ,。

Upload: tony-qiao

Post on 14-May-2015

4.145 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 持续集成中的六步提交

乔梁 http://www.continuousdelivery.info

什么是“持续集成六步法”?• “ 持续集成六步”是根据业界多年实践总

结的持续集成工作流程和规范,• 提高团队协作能力,高效开发软件应用。

Page 2: 持续集成中的六步提交

乔梁 http://www.continuousdelivery.info

图例:运行测试代码修改 代码流向构建成功

的线上版本

1. 把代码从版本库中检出到本地;2. 为新功能或修改某个缺陷而修改代码,增加测试;3. 运行第一次本地验证;4. 验证无问题后,再次与版本库中的代码合并,执行本地验证;5. 二次验证无问题后,提交代码到版本库;6. 关注持续集成服务器运行完提交构建,直至其成功。

版本库中的开发分支

个人本地工作区

取令牌 还令牌次级构建阶段

提交构建阶段

第二次本地验证第一次本地验证

1

23

4

4’

5

6

其它开发人员的提交持续集成六步的图例说明:

Page 3: 持续集成中的六步提交

乔梁 http://www.continuousdelivery.info

步骤说明• 步骤 1: 必须在持续集成当前状态为绿色(即成功)时,才能检出代

码;• 步骤 3: 本地构建的目的是验证本人的修改没有问题;• 步骤 4: 由于在你修改代码时,别人可能会提交代码,所以要与这些

线上代码合并;只有当线上持续集成当前状态为绿色时才能迁出代码进行合并。

• 步骤 4’: 本次构建的目的是验证合并后的代码没有问题;• 步骤 6: 代码提交者要一直关注由自己的提交所触发的持续集成线上构

建,直至其成功。如果失败,必须做为最高优先级任务对其进行修复。

Page 4: 持续集成中的六步提交

乔梁 http://www.continuousdelivery.info

附加说明• 令牌

– 可选项,当项目成员较多,构建常因多人提交导致失败时使用;– 每个分支对应的持续集成只有一个令牌;– 在第二次检出代码前取得令牌,在线上构建成功后归还令牌。– 没有拿到令牌的人不允许提交代码。

• 本地构建– 准确地说,应该是“个人构建”。– 构建内容包括编译、打包、动静态检查、所有单元测试、一些

集成测试和系统级冒烟测试。– 必须在 10 分钟内完成。

Page 5: 持续集成中的六步提交

乔梁 http://www.continuousdelivery.info

附加说明• 提交阶段构建

– 内部与本地构建相同。– 提交代码后立即触发提交阶段构建。– 提交阶段构建成功后,立即触发次级构建。

Page 6: 持续集成中的六步提交

乔梁 http://www.continuousdelivery.info

附加说明• 次级构建阶段

– 两个前提条件:• 当提交构建和本地构建时间过长(比如超过 10 分钟);• 且无法进一步优化,使构建时间缩短;

– 次级构建的内容包括剩余的自动化测试;– 如果次级构建时间过长,将其再分成多批运行。– 如果次级构建中的一些测试频繁失败,应将其移到提交构建中

运行,或在提交构建中增加 low level test 增加相关功能的测试。

详细说明请参见 InfoQ 持续集成专栏的系列文章:http://www.infoq.com/cn/news/2011/01/ci-check-in-dance