Skip to content

CI/CD 集成

在现代团队开发中,构建不应该只发生在你个人的机器上。所有的合并请求 (PR) 应该自动触发单元测试、Lint 检查和打包流程。

1. 核心流程

典型的 CI 流水线包含以下步骤:

  1. 环境准备: 安装 JDK, Android SDK。
  2. Lint 检查: ./gradlew lintDebug
  3. 单元测试: ./gradlew testDebugUnitTest
  4. 构建 APK: ./gradlew assembleRelease
  5. 归档产物: 将 APK 上传到 Artifacts。

2. GitHub Actions 示例

.github/workflows/android.yml 中:

yaml
name: Android CI

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up JDK 17
        uses: actions/setup-java@v4
        with:
          java-version: '17'
          distribution: 'temurin'
          cache: gradle

      - name: Grant execute permission for gradlew
        run: chmod +x gradlew

      - name: Run Build
        run: ./gradlew assembleDebug

3. 依赖缓存 (Cache)

提速建议

CI 运行最慢的地方通常是下载依赖。务必配置缓存策略,以复用上一次下载的 Jar 包。

上面的 GitHub Actions 示例中已经通过 cache: gradle 自动处理了缓存。

4. 敏感信息处理

在 CI 环境中,签名文件和密码应通过 Secrets (环境变量) 注入,而不是提交到 Git。

kotlin
// 在 build.gradle.kts 中读取环境变量
val keystorePassword = System.getenv("KEYSTORE_PASSWORD")