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_PASSWORD 和 KEY_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分发平台
|