See Also Software Engineering产品发布流程jenkins

持续集成

Continuous integration(CI),是一种软件工程流程。最早是指频繁地(一天多次)把所有工程师的协作工作结果集成到共用主线(mainline)上。

之后成为极限编程(extreme programming,缩写为XP)的一部分。在测试驱动开发(TDD)的作法中,CI会搭配自动单元测试,能使缺陷更容易被发现和改正。

持续集成的提出,主要是为了解决软件进行系统集成时面临的各项问题,极限编程称这些问题为集成地狱(integration hell)。

1. Rationale

2. Workflow

3. History

葛来迪·布区于1994年出版的《面向对象分析设计与应用》(Object-Oriented Analysis and Design with Applications)第二版中,首次提出持续集成这个名词。

1997年,肯特·贝克与Ron Jeffries创建了极限编程方法,将持续集成作为极限编程的一部分。

4. Best practices

4.1. Maintain a code repository

4.2. Automate the build

4.3. Make the build self-testing

4.4. Everyone commits to the baseline every day

4.5. Every commit (to baseline) should be built

4.6. Keep the build fast

4.7. Test in a clone of the production environment

4.8. Make it easy to get the latest deliverables

4.9. Everyone can see the results of the latest build

4.10. Automate deployment

持续部署(continuous deployment),指的是代码通过评审以后,自动部署到生产环境。

持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。

持续部署的前提是能自动化完成测试、构建、部署等步骤。

5. Costs & Benefits

6. Reference

MainWiki: Continuous_Integration (last edited 2013-10-22 06:38:25 by twotwo)