Сборка осуществляется командой make HARDWARE=<hw> VERBOSE=1 DEBUG=0 PRINTF=custom MAC=<mac_adr>
Пример: make HARDWARE=bt6711_v1 VERBOSE=1 DEBUG=0 PRINTF=custom MAC=EC-4C-4D-00-EE-DC
Возможна сборка в докер-контейнере с подготовленным окружением и необходимым тулчейном. Актуальный образ для сборки указан в файле jenkins-env.groovy
(переменная buildenvImage
). Полная команда для сборки в таком случае выглядит так:
git clone https://192.168.24.200:3000/ebalbekova/bt-67xx_universal_hw.git
cd bt-67xx_universal_hw
docker run \
-ti --rm -v $(pwd):/home/jenkins \
192.168.24.227:8082/docker/stm32-buildenv:v3 \
make HARDWARE=bt6711_v1 VERBOSE=1 DEBUG=0 PRINTF=custom MAC=EC-4C-4D-00-EE-DC
Сборка при помощи докера является предпочтительным способом отладки ПО разработчиком. В этом случае исключены ошибки при несовпадении окружения на ПК разработчика и на сервере автосборки.
Основная ветка для разработки - master
Иные ветки несут вспомогательный (временный) характер для разработки или отладки отдельных функций. Сборка этих веток автоматически не осуществляется.
Все релизы ПО осуществляются по тегам. Теги проставляются только по определенному шаблону. Все теги, проставленные не по шаблону, не учитываются системой сборки и несут вспомогательный характер (удобство разработчика)
Для выпуска релиз кандидата нужно проставить тег с префиксом rc_
:
rc_<тип устройства>_<версия>
(Пример: rc_bt6710_v1.5beta2
)
Для сборки релиза нужно проставить тег с префиксом release_
:
release_<тип устройства>_<версия>
(Пример: release_bt6710_v1.5
)
Возможно так же оформить отдельно релиз загрузчика (префикс bootloader_
)
и релиз сервисной флешки (префикс service_
)
Сборка осуществляется на сервере Jenkins в пайплайне: http://192.168.24.203:8080/view/BT-67xx/job/bt-67xx_universal_hw/
Настроены сборки при каждом коммите в ветку master
и при обнаружении нового тега (независимо от ветки). В любом случае система собирает все возможные варианты ПО (для всех вариантов контроллеров), но при релизе публикует только ПО для выбранного устройства.
Результаты сборки попадают на сервер Artifactory http://192.168.24.227:8082/ui/native/firmware/BT-67xx/bt67xx_universal_hw/
Все настройки для автоматической сборки (с подробным описанием) хранятся в файле jenkins-env.groovy
в корне данного репозитория. По окончании сборки релиза всем указанным в настройках адресатам рассылается информационное письмо со ссылкой на хранилище результатам сборки. Так же информационное письмо отправляется разработчику при неудачных сборках очередного коммита в основную ветку.