|
CI(Continuous Integration),即持续集成,指频繁地(一天多次)将代码集成到主干的行为。注意,这里既包含持续将代码集成到主干的含义,也包含持续将源码生成可供实际使用的制品的过程。因此,我们需要通过 CI,自动化地保证代码的质量,并对其构建产物转换生成可用制品供下一阶段调用。
在 CI 阶段,我们有如下阶段需要实现:
1.静态代码检查
这其中包括,ESLINT/TSLINT 静态语法检查,验证 git commit message 是否符合规范,提交文件是否有对应 owner 可以 review 等等。这些静态检查不需要编译过程,直接扫描源代码就可以完成。
2.单元测试/集成测试/E2E 测试
自动化测试这一环节是保障制品质量的关键。测试用例的覆盖率及用例质量直接决定了构建产物的质量,因此,全面且完善的测试用例也是实现持续交付的必备要素。
3.编译并整理产物
在中小型项目中,这一步通常会被直接省略,直接将构建产物交由部署环节实现。但对于大型项目来说,多次频繁的提交构建会产生数量庞大的构建产物,需要得到妥善的管理。产物到制品的建立我们接下来会有详细讲解。
爆炸式集成
- Bug 总是在最后才发现
- 越到后期问题越难解决
- 软件交付时机无法保障
- 程序经常需要变更
- 无效的等待变多
- 用户的满足度低
持续集成
- 降低风险及早发现问题
- 更快地定位和修复问题
- 更快地交付成果
- 减少手工的错误
- 减少了等待时间
- 更高的产品质量
|
|