在前五章中,我們完成了嵌入式 CI/CD 從環境搭建、編譯自動化、測試自動化、發布分發到監控回歸的全技術鏈條。本章將以 STEVAL-IDB011V1(搭載 BlueNRG-355)評估板為實戰載體,手把手演示如何在 GitLab CI(或 Jenkins)上,構建一條從 Git Push → 編譯 → 測試 → 刷寫 → 驗證 → 發布 的一鍵流水線。通過本章,你將獲得可直接克隆復用的完整 Pipeline 配置、腳本與項目結構。
6.1 項目倉庫結構
embedded-ci-cd/
├── .gitlab-ci.yml # GitLab CI 主配置
├── docker/
│ └── Dockerfile.build # 構建環境鏡像
├── cmake/
│ └── arm-none-eabi-toolchain.cmake
├── ld/
│ └── STM32F103C8Tx_FLASH.ld
├── scripts/
│ ├── package_ota.sh # 打包 OTA 鏡像腳本
│ ├── flash.sh # OpenOCD 自動刷寫腳本
│ ├── run_unit_tests.sh # 單元測試執行腳本
│ ├── run_hil_tests.sh # HIL 測試驅動腳本
│ └── collect_coverage.sh # 覆蓋率收集腳本
├── src/
│ ├── main.c
│ ├── ble_service.c
│ └── ...
├── tests/
│ ├── unity/
│ ├── cmock/
│ └── test_foo.c
└── docs/ └── architecture.puml # PlantUML 架構圖
-
.gitlab-ci.yml:定