AG
Все записи

CI/CD для embedded-проектов: от хаоса к порядку

1 min read
CI/CDEmbeddedDevOpsDocker

Проблема

В мире embedded-разработки CI/CD часто воспринимается как что-то из другой вселенной. «У нас же железо, какой Docker?» — типичная реакция. Но именно в embedded автоматизация приносит наибольшую отдачу: цена ошибки высока, а ручное тестирование занимает дни.

Наш подход

Мы разбили pipeline на несколько стадий:

  1. Static Analysis — clang-tidy, cppcheck, MISRA-проверки
  2. Unit Tests — GoogleTest в Docker-контейнере с эмуляцией HAL
  3. Integration Tests — QEMU для ARM, автоматический запуск firmware
  4. Hardware-in-the-Loop — тесты на реальных платах через CI runner

Инструменты

  • GitLab CI — основной orchestrator
  • Docker — изоляция окружений сборки (arm-gcc, tools)
  • QEMU — эмуляция ARM для быстрых smoke-тестов
  • Custom test runners — Python-скрипты для HIL-тестирования

Результаты

  • Цикл релиза сократился с 2 недель до 1 дня
  • Количество regression-багов в production уменьшилось на 70%
  • Время onboarding нового инженера — с 2 недель до 3 дней

Выводы

CI/CD в embedded — это не роскошь, а необходимость. Начните с малого: статический анализ и unit-тесты в Docker. Затем постепенно добавляйте QEMU и HIL.