CI/CD 文档
IMX-Forge 项目采用分层 CI 策略,平衡验证速度和完整性
工作流概览
| 工作流 | 触发条件 | 用途 |
|---|---|---|
| PR Quick Checks | 所有 PR ~5min | 快速验证基础问题 |
| Component Build | 路径变化 ~8-15min | 只构建变更组件 |
| Full Build | main / 标签 PR ~25-30min | 完整 4 阶段构建 |
| Release Build | release-* 分支 ~25-30min | 发布准备 |
| Docker Image Publish | Tag / 手动 ~5-10min | 构建发布 Docker 镜像 |
PR 提交流程
打开 PR
快速检查ci-pr~5min
通过验证
修改了特定文件?
| 修改路径 | 触发构建 |
|---|---|
patches/uboot/** | U-Boot |
patches/linux-imx/** | NXP BSP 内核 |
patches/linux-mainline/** | Mainline 内核 |
driver/** | 驱动示例 |
ci-build 只构建你修改的部分,节省时间。
需要完整验证?
给 PR 添加 full-build 标签即可触发 ci-full:
Stage 1: U-Boot → Stage 2: 双内核并行 → Stage 3: BusyBox → Stage 4: RootFS
完整触发矩阵
| 你的操作 | ci-pr | ci-build | ci-full | ci-release |
|---|---|---|---|---|
| 打开/更新 PR | ✅ 自动运行 | 🔍 路径触发 | ❌ | ❌ |
给 PR 加 full-build 标签 | ✅ | 🔍 | ✅ 运行 | ❌ |
| 合并到 main | ❌ | ❌ | ✅ 自动运行 | ❌ |
推送 release-* 分支 | ❌ | ❌ | ❌ | ✅ 自动运行 |
触发决策
mermaid
graph TD
A[PR 触发] --> B[快速检查 ✅ 每个 PR]
A --> C[组件构建 🔍 路径变化时]
A --> D[完整构建 🏷️ full-build 标签]
E[Push main] --> F[完整构建 ✅ 自动]
G[Push release-*] --> H[发布构建 ✅ 自动]