logo
0
0
WeChat Login
refactor: 将克隆仓库步骤移至构建阶段

Android 开源项目 CI 构建模板

基于 Cloud Native Build (CNB) 的 Android 项目自动化构建和发布流水线。

功能特性

  • 🔧 支持任意 Android 项目的 Git 仓库检出和构建
  • 🚀 自动打包并上传 Release 制品
  • 📦 支持指定 CPU 核数和多种 JDK 版本
  • ☁️ 支持 VSCode 云开发环境
  • 🏷️ 自动创建 Git 标签并上传构建产物
  • 🇨🇳 配置了腾讯云镜像源,加速依赖下载

快速开始

使用方式

方式一:Web 触发器

  1. 在 CNB 控制台点击 打包Release🚀vscode开发打包Release🚀 按钮
  2. 填写以下必填参数:
    • 仓库地址:要构建的 Android 项目 Git 仓库 URL
    • 打包命令:执行打包的命令,例如 cd project && bash gradlew assembleDebug
    • 制品路径:构建产物路径,支持通配符,例如 project/*/build/outputs/apk/*/*.apk
  3. 选择可选参数:
    • Git检出参数git clone 的额外参数(默认为空,可输入类似--branch main --depth 1
    • CPU核数:构建环境的 CPU 核心数(2/4/8/16/32/64,默认:8核)
    • JDK版本:JDK 版本(8/11/17/21,默认:JDK 17)
  4. 提交后等待构建完成,构建产物将自动上传到 Release

方式二:VSCode 开发环境

点击 vscode开发打包Release🚀 按钮可以直接在云端的 VSCode 中进行开发和调试,然后触发构建。

配置说明

环境变量

变量名说明默认值
REPO_URLGit 仓库地址必填
GIT_CHECKOUT_REFGit 检出参数--branch main --depth 1
BUILD_COMMAND打包命令必填
ARTIFACT_PATH制品路径必填
CPU_CORESCPU 核心数8
JDK_VERSIONJDK 版本jdk17

镜像源配置

项目已配置以下镜像源以加速依赖下载:

  • Gradle 分发镜像https://mirrors.cloud.tencent.com/gradle/
  • Android SDK 镜像https://mirrors.tencent.com/AndroidSDK/

Docker 镜像

使用的 Docker 镜像:docker.cnb.cool/jacknic/docker/android-cimg:{JDK_VERSION}

工作流程

  1. 配置环境:设置 Gradle 镜像源
  2. 克隆仓库:从 Git 仓库检出代码到 /workspace/project
  3. 预下载依赖:执行 Gradle Wrapper 预下载依赖
  4. 执行构建:运行用户指定的打包命令
  5. 生成标签:基于时间戳生成版本标签(格式:vYYYYMMDDHHMMSS
  6. 创建 Release:创建 Git 标签并记录构建信息
  7. 上传制品:上传构建产物到 Release 附件

目录结构

/workspace/ ├── .cnb.yml # CNB 流水线配置文件 ├── .cnb/ │ ├── Dockerfile # Docker 镜像定义 │ ├── init.gradle.kts # Gradle 镜像源配置 │ └── web_trigger.yml # Web 触发器配置 ├── checkout.sh # Git 仓库克隆脚本 └── README.md # 项目说明文档

注意事项

  • 仓库会检出到 /workspace/project 目录,因此打包命令需要先进入该目录
  • 制品路径支持通配符和换行分隔多个路径
  • 构建完成后会自动创建 Git 标签,请确保仓库有写入权限
  • 理论上 CPU 核数越多构建越快,但也会消耗更多资源

常见问题

Q: 如何指定特定分支构建?

A: 在 Git检出参数 中填写,例如:--branch develop --depth 1

Q: 如何构建多个 APK?

A: 在 制品路径 中用换行分隔多个路径,或使用通配符匹配多个文件

Q: 构建失败如何排查?

A: 查看构建日志中的 CNB_BUILD_WEB_URL 链接获取详细错误信息

许可证

MIT License

About

Android 在线CI编译工具