Embedded ❤️ Continuous Integration

Andrey Voloshin
TechMaker
Published in
1 min readApr 14, 2018

При розробці прошивки, особливо, на пізніх етапах час циклу “доробити/зафіксити — залити — протестити — оцінити” може різко зростати. Функціонал розростається, а регресію ніхто не відміняв.

Ще в 1991 році Граді Буч запропонував безперервну інтеграцію (Continuous Integration, CI) для швидкої побудови коду та перевірки його на помилки.

Типова архітектура CI

Часто сучасні системи CI побудовані з сервера (на ньому проходить конфігурація та відображення стану проектів, гілок та окремих білдів) та білд агентів, котрі виконують побудову коду, запускають тести під різними ОС та архітектурами.

Білд агенти працюють на звичайних компʼютерах, ноутбуках та серверах. Підключивши до нього test bench (його також треба розробити) + свії пристрій ви зможете запускати тести та швидко знаходити регресію в нових версіях прошивки.

Прототип test bench для емуляції автомобіля

Безумовно, розробка та періодичне допрацювання test bench потребує часу та бюджет, але саме така практика дозволить створювати і довершувати відмінні пристрої і прошивки для них.

Приклади CI серверів:

  • Jenkins/Hudson
  • TeamCity
  • Team Foundation Server
  • Travis CI

--

--