持续集成基础知识

持续集成 (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 可以通过自动化那些否则会耗时且容易出错的任务,来帮助提高开发人员的生产力。

进一步阅读

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