持续集成基础知识

持续集成 (CI) 是一种软件开发实践,开发者经常将其代码更改合并到一个中央代码库中,然后自动构建和测试运行。

您可以设置一个基本的 CI 系统,以防止在合并后破坏 build 的新更改。您可以对更高级的 CI 系统进行编程,以自动测试应用,并确保应用在不同环境(如 API 级别、屏幕尺寸和平台)中都能按预期运行。

一张图表,显示了多位开发者如何请求更改代码,以及 CI 系统如何检查这些更改,然后再合并到主代码库。
图 1. CI 系统在合并之前运行检查,以保证代码库的正常运行。

本文档介绍了开发者为 Android 项目设置有效的 CI 系统时常用的策略。这些指南是通用的,适用于大多数解决方案。

典型示例

典型的 CI 系统遵循以下工作流或流水线

  1. CI 系统检测到代码更改,这通常是在开发者创建拉取请求时(也称为“更改列表”或“合并请求”)。
  2. 它会预配和初始化服务器以运行工作流。
  3. 它会根据需要提取代码以及 Android SDK 或模拟器映像等工具。
  4. 它通过运行给定命令(例如 ./gradlew build)来构建项目。
  5. 它通过运行给定命令(例如运行 ./gradlew test)来运行本地测试
  6. 它会启动模拟器并运行插桩测试
  7. 它会上传测试结果和 APK 等工件。
显示基本 CI 工作流的示意图
图 2. 基本 CI 工作流

CI 的优势

CI 的优点包括:

  • 提高软件质量:CI 可以帮助您尽早发现并解决问题,从而帮助提高软件质量。这有助于减少软件版本中的 bug 数量并改善整体用户体验。
  • 降低构建中断的风险:使用 CI 实现构建流程自动化后,通过尽早解决问题,可以更好地避免构建中断的情况。
  • 增强对版本的信心:CI 有助于确保每个版本都稳定且已准备好投入生产环境。通过运行自动化测试,CI 可以发现任何潜在问题,然后再将其公开发布。
  • 改善了沟通和协作:CI 为开发者提供了一个集中分享代码和测试结果的地方,可帮助开发者和其他团队成员更轻松地协同工作并跟踪进度。
  • 提高工作效率:CI 可以自动执行那些耗时且容易出错的任务,从而提高开发者的工作效率。

深入阅读

如需详细了解如何使用持续集成来改进应用的开发,请参阅以下页面: