Skip to content

Component Build

组件构建工作流,根据变更的路径智能构建相关组件。

文件

.github/workflows/ci-build.yml

触发条件

事件条件
pull_requestPR 打开或更新到 main 分支
push推送到 main 分支
workflow_dispatch手动触发

路径检测规则

变更路径触发的构建
patches/uboot/**U-Boot
scripts/build_helper/build-uboot.shU-Boot
patches/linux-imx/**Linux (NXP BSP)
scripts/build_helper/build-linux.shLinux (NXP BSP)
patches/linux-mainline/**Linux (Mainline)
scripts/build_helper/build-mainline-linux.shLinux (Mainline)
scripts/build_helper/build-busybox.shBusyBox
driver/**驱动示例
scripts/**所有构建
.github/workflows/**所有构建

包含的 Jobs

detect - 路径检测

使用 dorny/paths-filter@v2 检测变更路径,输出布尔值给后续 Job 使用。

uboot - U-Boot 构建

  • 超时:12 分钟
  • 产物:out/uboot/u-boot-dtb.imx
  • 保留期:7 天

linux-imx - Linux NXP BSP 构建

  • 超时:18 分钟
  • 产物:zImage, imx6ull-aes.dtb
  • 保留期:7 天

linux-mainline - Linux Mainline 构建

  • 超时:18 分钟
  • 产物:zImage
  • 保留期:7 天
  • 与 linux-imx 并行运行

busybox - BusyBox 构建

  • 超时:10 分钟
  • 产物:busybox 二进制
  • 保留期:7 天

drivers - 驱动构建

  • 超时:8 分钟
  • 构建驱动示例(非阻塞)

预计时间

场景时间
单个组件8-18 分钟
双内核并行~18 分钟
全部组件~20 分钟

缓存策略

  • Docker 层缓存:基于 docker/Dockerfile 的 hash
  • 不缓存构建产物(保守策略)

并行执行

Linux NXP BSP 和 Linux Mainline 内核构建并行运行,充分利用 CI 资源。

Built with VitePress