build pipeline
Table of Contents
- 提交代码到开发分支:
在本地构建并通过单元测试之后,可以将代码提交到代码仓库的开发分支中。 - 自动构建:
包括编译、链接、打包,在一些大型项目中,这个过程往往需要几十分钟以上。 - 自动代码检查:
各种语言都有各自的代码静态检查工具,例如C++ 的 CppCheck、CppLint,Java的CheckStyle、PMD、FindBug,Python 的Pylint、Pyflakes、Pycodestyle 等。如果检查出严重的错误,并立即终止构建流水线,检查结果会生成检查报告。 - 自动执行单元测试:
确保这次提交不会造成其他模块的单元测试失败,任何一条单元测试不通过,也会终止构建流水线,我们也会在这个阶段执行一个不依赖于外部环境的API 测试. 测试的结果会生成测试报告。 - 自动生成文档:
利用 Doxygen、Javadoc、Sphinx 之类的自动文档生成工具, 分析代码并生成 API 和帮助文档。 - 自动部署在测试环境:
利用Puppet、Ansible 之类的部署脚本将软件包部署到测试环境,注入预设的配置变量并启动服务。 - 自动执行功能测试:
在测试环境中,自动运行所有需要依赖外部环境的 API 和 E2E(端到端)的测试,如果有一条测试不通过,也会终止构建流水线,自动测试的结果会生成报告。 - 将代码合并入主分支:
这个点可以设置一个批准环节,由产品负责人决定是否立即合并到主分支,如果改动太大,自动化测试覆盖率不够,开发人员信心不足的话,可以暂时不并入主分支,在开发分支添加更多测试。 - 自动运行性能测试:
性能测试分为基准性能指标测试和压力测试,各种压测参数需要事先设定,性能测试会生成性能测试和剖析报告,包括吞吐量(TPS)、最耗时模块和函数,以及对系统资源消耗的各种指标。 - 探索性测试:
指望自动化测试把一切潜在问题找出来往往是不现实的,手工进行一些探索性测试在发布在产线之前是必不可少的。 - 自动部署到产品环境上:
这个环节当然也是需要产品负责人批准的,由产品负责人根据测试报告来决定何时部署到产线上
Comments |0|
Category: Uncategorized