Задать вопрос
@3w4kn3

Как настроить CICD но для микроконтроллеров?

Подскажите с решением пожалуйста!
Есть группа разработчиков и опытное производство.
Уровень квалификации монтажников не располагает к хитростям разработки и прошивки МК.
Есть стенды в которые можно вставить плату после чего монтажники могут выбрать в меню плату инажать одну кнопку и прочитать не сложное сообщение типа "ok" или "переделывать"

Конфигурация стендов постоянно меняется, меняется файл прошивки и поведение стендов.
Есть идея прикрутить что-то на подобие github runer чтобы после того как разработчики изменили прошивку или тесты, изменения автоматически оказывались на стенде, но есть проблемма стенд не всегда включен, и после включения он не работает.
Сейчас крутится скрипт который пингует стенд и если пинг пропал, после задержки пушит пустой коммит и стенд после включения опять работает, посоветуйте что-то более приемлемое.
Мне очень не охота использовать собственные скрипты!
  • Вопрос задан
  • 217 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Основы электроники
    4 месяца
    Далее
Решения вопроса 1
@3w4kn3 Автор вопроса
Решено:
Мастер ранер с запуском по расписанию проверяет характеристики системы, в частности соответствия списку запущенных ранеров на машине, в противном случае создаёт файл update и ждёт когда пропадут файлы блокировок
Все остальные ранены проверяют наличие файлов блокировок, прежде чем выполнится, скрипты в начале проверяю наличие файла update потом создают файл lock выполняют работу потом удаляют файл lock

Добавление нового ранера- просто коммитим ссылку на реп в лист с репозитариями скрипт все сделает . дальше все само, удаление - удаляем ссылку,

Бекап-скрипт который подключается по ssh к заново установленной машине и считывает ssh-key и закидывает его на github после ставит мастер ранер
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Решать проблему выключения стенда. Если у вас там проблемы с электроснабжением — решить их. Можно подключить стенд к ИБП. Можно перенести стенд в другое помещение/здание/корпус. Если сетевые проблемы — решать их. Кинуть новый линк или даже два, заменить устаревшее оборудование.
Писать какие-то собственные скрипты для автоматизации деплоя на стенд вам всё равно придётся. Какой гит сервис вы используете? А CI/CD? В Гитлабе, например, всё достаточно легко настраивается и скриптуется. В вашем случае алгоритм стандартный и почти ничем не отличается для деплоя на сервер: при появлении PR в тестовой ветке залить прошивку на стенд. Структура тоже вполне стандартная:
  • Гит сервер
  • CI/CD сервер
  • Стенд для прошивки и тестирования

Вообще, стенд можно настроить на автоматический забор прошивки с файлового сервера: т.е. CI/CD сервер публикует прошивку, а стенд её самостоятельно забирает. Сам же стенд в идеале настроить на автоматическую заливку прошивки и проверку устройства. Т.е., воткнул устройство в стенд — загорается, условно, жёлтая ламчока или надпись "устройство проверяется". Если устройство работает — зелёная лапочка, если нет — красная.
Ответ написан
@Hardoman
DevOps
А зачем катить на стенд что-то если он выключен?
Почему не убедиться в его включении? CICD подразумевает, что конечный стенд в момент деплоя включен, это априори.
Можно это сделать и в пайплайне проверку на доступность стенда. Если вам нужно катить обязательно асинхронно, то CICD в классике не применим. Вам нужно публиковать прошивки или что вы там собираете на каком-то сервере, а стенд при запуске оттуда скриптом должен забирать, но это уже не CICD процесс.
Ответ написан
Комментировать
engin
@engin
Engineer Devops
Все в разы проще, если пересмотреть концепт платформы с удаленным управлением и настройкой.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы