瀏覽代碼

new pipeline, add README

mtroshechkin 2 年之前
父節點
當前提交
ae854842d0
共有 2 個文件被更改,包括 43 次插入4 次删除
  1. 35 0
      README.md
  2. 8 4
      jenkins-env.groovy

+ 35 - 0
README.md

@@ -0,0 +1,35 @@
+## Сборка
+Сборка осуществляется командой `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_`)<br />
+и релиз сервисной флешки (префикс `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` в корне данного репозитория. По окончании сборки релиза всем указанным в настройках адресатам рассылается информационное письмо со ссылкой на хранилище результатам сборки. Так же информационное письмо отправляется разработчику при неудачных сборках очередного коммита в основную ветку.

+ 8 - 4
jenkins-env.groovy

@@ -76,12 +76,16 @@ cp ./docs/bt6711_v1/*.MIB ./output_all/bt6711-v1/
 cp ./docs/bt6711_v1/Changelog.md ./output_all/bt6711-v1/
 """
 
-// Следующие три параметра уточнить у ответственного тестировщика
-testType = "robot"    // Тип тестов. По сути указывает на репозиторий с тестами на определенном фреймворке
+/// Следующие два параметра уточнить у ответственного тестировщика
+testType = "robot"    // Тип тестов. По сути указывает на задачу Jenkins, в которой запускаются тесты
 testTags = "smoke"    // Теги, с которыми запускаются тесты. Определяют, какие наборы тестов будут запущены
+stopOnTestFail = false    // Завершать сборку с ошибкой, если тесты провалены (true - да, false - игнорировать тесты)
 
-// Указывает на имя настроенного Jenkins-агента с необходимым окружением для сборки, при изменениях в требуемом окружении уведомить DevOps!!
-buildenvAgent = "stm32-buildenv-agent-v2"
+// Указывает на имя докер-образа с окружением для сборки.
+// Для связи исходного кода данного репозитория с версией образа (окружения) указывать только версионные образы
+// Например ":v1" или ":v2.0", нежелательно ссылаться на образ ":latest"
+buildenvImage = "stm32-buildenv:v3"
+buildenvArgs = ""    // только если необходимо для корректной сборки, иначе оставить пустым
 
 // Список устройств, для которых компилируется данный код (только тукущая ветка, не весь репозиторий). 
 // При сборке релиза проверяется, что устройство указанное в теге состоит в этом множестве.