移动应用遗留系统重构(17)-流水线设计篇

前言

上一篇移动应用遗留系统重构(16)- Gradle依赖管理篇我们提到随着重构工作的持续,各个模块已经补充了足量的自动化测试,但CloudDisk团队目前的CI只提供打包的功能,供测试团队进行验证。分仓以后也没有对独立模块仓库建立流水线,测试团队还是只能在最后做集成的验收。我们将重新对CloudDisk进行流水线的设计,必须满足质量门禁检查及根据模块、集成,制定对应的策略。

流水线

流水线是从代码到产品的完整生命周期的可视化呈现,快速反馈产品的可交付状态,引导团队快速响应。

1
2
3
4
5
graph LR
A(代码提交)-->B(质量门禁)
B-->C(构建)
C-->D(自动化测试)
D-->E(发布)

其中质量门禁通常包括代码规范检查、安全漏洞检查等;自动化测通过包过小型的单元测试、中型的接口测试等

质量门禁

统一使用sonar进行质量域管理,集成Lint、CheckStyle、Findbugs、Jacoco。

自动化测试包含单元测试、接口测试、验收UI测试、架构守护测试,并通过jacoco统计覆盖率上传至sonar。

组件流水线

  1. 业务平台成员提交代码后自动触发流水线检查
  2. Pre-review验证包含质量门禁检查、编译及自动化测试
  3. 团队内架构师进行review后代码合入
  4. 发布最新的组件版本到maven制品库

集成流水线

  1. 产品团队根据版本规划,提交组件集成版本清单
  2. 自动触发Pre-review验证包含质量门禁检查、编译及自动化测试
  3. 团队内架构师进行review,产品经理进行确认后代码合入
  4. 发布最新的应用版本到制品库
  5. 团队确认后选择渠道(内测、灰度、应用市场、全量)进行发布

总结

本篇我们分享了CloudDisk团队的新流水线设计,增加了质量门禁,提高代码入库质量。同时也为组件设计了流水线,方便快速反馈对组件进行测试验收。

下一篇移动应用遗留系统重构(18)- 总结篇是本系列的最后一篇,我们将分享在实际项目中除了技术外的一些踩坑心得,并对整个系列进行总结回顾。

CloudDisk示例代码

CloudDisk

系列链接

移动应用遗留系统重构(1)- 开篇

移动应用遗留系统重构(2)-架构篇

移动应用遗留系统重构(3)-示例篇

移动应用遗留系统重构(4)-分析篇

移动应用遗留系统重构(5)- 重构方法篇

移动应用遗留系统重构(6)- 测试篇

移动应用遗留系统重构(7)- 解耦重构演示篇(一)+视频演示

移动应用遗留系统重构(8)- 依赖注入篇

移动应用遗留系统重构(9)- 路由篇

移动应用遗留系统重构(10)- 解耦重构演示篇(二)

移动应用遗留系统重构(11)- 制品管理篇

移动应用遗留系统重构(12)- 编译调试篇

移动应用遗留系统重构(13)- 编译调试篇

移动应用遗留系统重构(13)- 编译调试篇

移动应用遗留系统重构(14)- Kotlin+MVVM重构示例篇

移动应用遗留系统重构(15)- 数据库重构示例篇

移动应用遗留系统重构(16)- Gradle依赖管理篇

大纲

关于