CI/CD 集成
在现代团队开发中,构建不应该只发生在你个人的机器上。所有的合并请求 (PR) 应该自动触发单元测试、Lint 检查和打包流程。
1. 核心流程
典型的 CI 流水线包含以下步骤:
- 环境准备: 安装 JDK, Android SDK。
- Lint 检查:
./gradlew lintDebug。 - 单元测试:
./gradlew testDebugUnitTest。 - 构建 APK:
./gradlew assembleRelease。 - 归档产物: 将 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 assembleDebug3. 依赖缓存 (Cache)
提速建议
CI 运行最慢的地方通常是下载依赖。务必配置缓存策略,以复用上一次下载的 Jar 包。
上面的 GitHub Actions 示例中已经通过 cache: gradle 自动处理了缓存。
4. 敏感信息处理
在 CI 环境中,签名文件和密码应通过 Secrets (环境变量) 注入,而不是提交到 Git。
kotlin
// 在 build.gradle.kts 中读取环境变量
val keystorePassword = System.getenv("KEYSTORE_PASSWORD")