持续集成基础知识

持续集成 (CI) 是一种软件开发实践,开发人员会频繁地将其代码更改合并到中央存储库中,之后会运行自动构建和测试。

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

A diagram showing how multiple developers request code changes and how they are checked by the CI system before getting merged into the main code repository.
图 1. CI 系统通过在合并前运行检查来保持代码存储库的健康。

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

典型示例

典型的 CI 系统遵循一个工作流程管道,可能如下所示

  1. CI 系统检测到代码更改,通常是当开发人员创建拉取请求时,也称为“更改列表”或“合并请求”。
  2. 它预配并初始化服务器以运行工作流程。
  3. 如果需要,它会获取代码以及工具,例如 Android SDK 或模拟器映像。
  4. 它通过运行给定命令来构建项目,例如。/gradlew build
  5. 它通过运行给定命令来运行本地测试,例如运行。/gradlew test
  6. 它启动模拟器并运行工具测试
  7. 它上传工件,例如测试结果和 APK。
A diagram showing a basic CI workflow
图 2. 基本 CI 工作流程

CI 的优势

CI 的优势包括

  • 改进软件质量:CI 可以通过尽早识别和解决问题来帮助提高软件质量。这有助于减少软件发行版中的错误数量,并改善整体用户体验。
  • 降低构建中断的风险:当您使用 CI 自动化构建过程时,您可以通过在流程早期解决问题来更好地避免构建中断。
  • 增强对版本的信心:CI 可以帮助确保每次发行版都稳定且可用于生产。通过运行自动化测试,CI 可以在您将其发布给公众之前识别任何潜在问题。
  • 改进沟通与协作:通过为开发人员提供一个共享代码和测试结果的中心位置,CI 可以帮助开发人员和其他团队成员更轻松地协同工作和跟踪进度。
  • 提高生产力:CI 可以通过自动化原本耗时且容易出错的任务来帮助提高开发人员的生产力。

进一步阅读

有关如何使用持续集成来改进应用开发的更多信息,请阅读以下页面