番外篇 F04:嵌入式 CI/CD 落地实践——从零搭建自动化编译/测试流水线 “这里没有理论派,只有能跑的命令和能用的方案。”—— DoubleMpd📌 前言在嵌入式开发中,手动编译固件、逐个测试功能、手动烧录部署的方式不仅效率低下,还容易因环境不一致导致“本地能跑,设备上崩”的问题。CI/CD 通过自动化流水线,将代码提交、编译、测试、镜像生成与部署串联为可追溯的闭环流程。CI/CD 的核心目标是实现“代码提交→自动构建→测试→质量门禁”的闭环。嵌入式 CI/CD 面临独特的挑战:工具链隔离、构建缓存管理、多架构支持、硬件在环测试等。本文将从零开始,构建一套适用于嵌入式团队的 CI/CD 流水线。🏗️ 一、CI/CD 工具选型1.1 主流方案对比工具优点缺点适用场景Jenkins插件丰富、高度可定制、支持多平台配置复杂、维护成本高大型团队、复杂流水线GitLab CI与 GitLab 深度集成、配置即代码依赖 GitLab 生态使用 GitLab 的团队GitHub Actions生态完善、免费额度充足嵌入式工具链支持有限开源项目、小型团队IAR CI/CD 方案专为嵌入式优化、云就绪商业付费使用 IAR 的团队1.2 推荐方案(Jenkins + GitLab)对于嵌入式团队,推荐Jenkins + GitLab组合:GitLab 管理代码和 MR/PRJenkins 执行自动化流水线⚙️ 二、Jenkins 部署与配置2.1 安装 JenkinsUbuntu/Debian:# 添加 Jenkins 源 curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc /dev/null echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list