收起左侧

【gitea】-打造你的个人全能CI/CD(持续集成自动化构建)-二-Android项目的自动化构建

0
回复
1342
查看
[ 复制链接 ]

13

主题

12

回帖

160

牛值

社区共建团

社区上线纪念勋章社区共建团荣誉勋章

2024-11-30 16:00:23 显示全部楼层 阅读模式

1. 配置 Gitea 的 CI/CD 管道

Gitea 提供了内置的 CI/CD 功能,允许你为个人 Android 项目设置自动化构建和 APK 文件生成流程。通过配置 .gitea/workflows 目录下的 YAML 文件,你可以定义一系列任务来自动执行从代码检查到最终打包的过程。以下是详细的步骤:

  • 创建工作流文件

    • 在你的 Android 项目根目录下创建一个名为 .gitea/workflows 的目录。
    • 在该目录中创建一个 YAML 文件,例如 build-android.yml,用于定义构建流程。
  • 选择合适的 Runner

    • Gitea 使用 Runners 来执行 CI/CD 任务。你需要确保 Runner 环境中安装了必要的工具,如 JDK、Android SDK 和 Gradle。
    • 如果你使用的是自托管的 Gitea 实例,可以配置本地或远程 Runner。对于个人项目,建议使用 Docker 容器作为 Runner,这样可以确保环境的一致性和隔离性。
  • 定义构建步骤

    • build-android.yml 文件中,定义构建步骤。以下是一个示例配置,假设你已经设置了 Docker Runner:
name: Build and Package Android App

on:
  push:
    branches:
      - main
  pull_request:

**s:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up JDK 11
      uses: actions/setup-java@v2
      with:
        java-version: '11'

    - name: Install Android SDK
      run: |
        echo "sdk.dir=$ANDROID_HOME" > local.properties
        yes | sdkmanager --licenses
        sdkmanager "platform-tools" "platforms;android-30" "build-tools;30.0.3"

    - name: Cache Gradle packages
      uses: actions/cache@v2
      with:
        path: ~/.gradle
        key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
        restore-keys: |
          ${{ runner.os }}-gradle-

    - name: Build with Gradle
      run: ./gradlew assembleRelease

    - name: Upload APK
      uses: actions/upload-artifact@v2
      with:
        name: apk
        path: app/build/outputs/apk/release/app-release.apk
  • 触发构建
    • 当你推送代码到 main 分支或创建 Pull Request 时,Gitea 会自动触发构建流程。
    • 构建完成后,生成的 APK 文件将作为构建工件上传,你可以从 Gitea 的 Web 界面下载这些文件。

2. 准备 Android 项目

为了确保 Gitea 能够顺利编译你的 Android 项目并生成 APK 文件,你需要做一些准备工作:

  • 确保项目结构正确

    • 确认你的 Android 项目遵循标准的 Gradle 项目结构,包括 build.gradle 文件和 settings.gradle 文件。
    • 确保 local.properties 文件中指定了正确的 Android SDK 路径(如果你使用 Docker Runner,则不需要手动设置)。
  • 配置签名密钥

    • 为了生成正式的 APK 文件,你需要配置签名密钥。可以在 app/build.gradle 文件中添加以下内容:
android {
    ...
    signingConfigs {
        release {
            storeFile file("path/to/your/keystore.jks")
            storePassword System.getenv("KEYSTORE_PASSWORD")
            keyAlias "your-key-alias"
            keyPassword System.getenv("KEY_PASSWORD")
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}
  • 设置环境变量
    • KEYSTORE_PASSWORDKEY_PASSWORD 作为环境变量添加到 Gitea 的仓库设置中。这可以通过 Gitea 的“Settings”页面中的“Secrets”部分完成,以确保敏感信息不会泄露到代码库中。

3. 测试和调试构建过程

在配置好 CI/CD 管道后,建议进行几次测试,以确保构建过程顺利无误:

  • 手动触发构建

    • 你可以通过 Gitea 的 Web 界面手动触发构建,观察构建日志,确保所有步骤都能正常执行。
    • 如果遇到问题,仔细检查日志输出,找出错误原因并进行调整。
  • 验证 APK 文件

    • 构建完成后,下载生成的 APK 文件,并在模拟器或真实设备上进行测试,确保应用能够正常运行。
    • 检查 APK 文件的大小和版本号,确保它们符合预期。
  • 优化构建性能

    • 如果构建时间较长,可以考虑启用缓存机制,例如缓存 Gradle 依赖项和 Android SDK 工具。这可以通过在 YAML 文件中添加相应的缓存配置来实现。

4. 发布和分发 APK 文件

一旦构建成功并通过测试,你可以将生成的 APK 文件发布和分发给用户或团队成员:

  • 上传到 Gitea Releases

    • Gitea 支持创建 Releases,你可以在每次发布新版本时上传 APK 文件。这样用户可以直接从 Gitea 下载最新的应用版本。
    • 创建 Release 的步骤如下:
      • 进入仓库页面,点击“Releases”标签。
      • 点击“Draft a new release”按钮,填写版本号、标题和描述。
      • 上传 APK 文件作为附件,然后发布。
  • 通过飞牛分发apk

    • 飞牛即将支持外链分享功能(测试版已支持),后面就可以使用外链分享功能代替蒲公英等app分发平台
收藏
送赞 4
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则