流水线设计
开发人员完成开发任务提交到代码仓库后,总是希望尽快完成代码质量的检查,构建,部署到相应的环境中验证和验收。那么如何设计流水线,高效保质保量的协助开发,测试验收相应的代码和需求呢?请往下看。
提交构建流水线
- 触发方式:开发每次提交代码到远程代码仓库时触发。
- 流水线目的:对开发提交的代码及时进行构建,质量扫描等操作,规避技术债的产生。
- 流水线主要节点:代码构建,Jacoco覆盖率,Sonar扫描,单元测试,安全测试等。
预合并流水线
- 触发方式:开发每次提交代码合并请求时触发。
- 流水线目的:对开发提交的合并请求进行预合并,代码构建,质量扫描等操作,规避技术债的产生,保障主干分支的稳定性。
- 流水线主要节点:预合并,代码构建,Jacoco覆盖率,Sonar扫描,单元测试,安全测试等。
定时触发流水线
- 触发方式:定时触发。
- 流水线目的:对测试分支或者其他固定分支进行定时代码构建,或者执行自动化测试用例等。保障固定分支稳定性和环境的稳定性。
- 流水线主要节点:代码构建,Jacoco覆盖率,Sonar扫描,单元测试,安全测试,自动化测试等。
各个环境构建流水线
- 触发方式:手动触发、定时触发。
- 流水线目的:构建产生相应环境的制品包,给部署流水部署。
- 流水线主要节点:代码构建,Jacoco覆盖率,Sonar扫描,单元测试,安全测试,制品上传等。
各个环境部署流水线
- 触发方式:手动触发、定时触发。
- 流水线目的:部署构建流水线产生的制品包,部署各环境。
- 流水线主要节点:SQL脚本执行,环境部署,自动化测试用例执行,邮件通知等。