# Выпуск прошивок Репозиторий живёт на . Автоматической сборки релизов в CI нет: прошивки собираются локально через [`posadmesh-build.sh`](./posadmesh-build.sh), а теги и релизы создаются вручную в веб-интерфейсе git.meshinfo.ru. ## Версии сборки - `FIRMWARE_VERSION` — версия upstream MeshCore, на которой основана сборка (например `v1.15.0`) - `POSADMESH_VERSION` — версия релиза PosadMesh (например `v2026.5.1`) Обе задаются переменными окружения перед запуском сборки: ```bash export FIRMWARE_VERSION=v1.15.0 export POSADMESH_VERSION=v2026.5.1 bash posadmesh-build.sh build-firmware heltec_v4_repeater_observer ``` ## Теги релизов PosadMesh Один или несколько тегов следующих форматов помечают релиз соответствующего трека: - `companion-wifi-v1.15.0` - `repeater-bridge-espnow-v1.15.0` - `observer-posadmesh-bridge-espnow-v2026.5.1` - `observer-posadmesh-bridge-mqtt-v2026.7.0` - `observer-posadmesh-v2026.5.1` В `companion-wifi-v1.15.0` используется версия upstream MeshCore. В `repeater-bridge-espnow-v1.15.0` используется версия upstream MeshCore. В `observer-posadmesh-bridge-espnow-v2026.5.1` используется версия релиза PosadMesh. В `observer-posadmesh-bridge-mqtt-v2026.7.0` используется версия релиза PosadMesh. В `observer-posadmesh-v2026.5.1` используется версия релиза PosadMesh. Соответствие тегов и треков: - `companion-wifi-v*` — прошивка companion WiFi - `repeater-bridge-espnow-v*` — прошивка ESP-NOW-моста репитера - `observer-posadmesh-bridge-espnow-v*` — прошивка обсервера с ESP-NOW - `observer-posadmesh-bridge-mqtt-v*` — прошивка обсервера с MQTT-мостом - `observer-posadmesh-v*` — прошивка обсервера Сборка выполняется локально для нужного таргета; тегов на одном коммите может быть несколько. ## Итоговая версия прошивки - `companion-wifi` использует версию из тега как `FIRMWARE_VERSION` - `repeater-bridge-espnow` использует версию из тега как `FIRMWARE_VERSION` - `observer-posadmesh-bridge-espnow` использует `FIRMWARE_VERSION` upstream MeshCore, а версию PosadMesh из тега — как `POSADMESH_VERSION` - `observer-posadmesh-bridge-mqtt` использует `FIRMWARE_VERSION` upstream MeshCore, а версию PosadMesh из тега — как `POSADMESH_VERSION` - `observer-posadmesh` использует `FIRMWARE_VERSION` upstream MeshCore, а версию PosadMesh из тега — как `POSADMESH_VERSION` Итоговая строка версии зависит от трека: - `companion-wifi`: `v1.15.0-` - `repeater-bridge-espnow`: `v1.15.0-` - `observer-posadmesh-bridge-espnow`: `v1.15.0-posadmesh-v2026.5.1-` - `observer-posadmesh-bridge-mqtt`: `v1.15.0-posadmesh-v2026.7.0-` - `observer-posadmesh`: `v1.15.0-posadmesh-v2026.5.1-` Пример: - тег: `observer-posadmesh-v2026.5.1` - переменные: `FIRMWARE_VERSION=v1.15.0`, `POSADMESH_VERSION=v2026.5.1` - итоговая версия сборки: `v1.15.0-posadmesh-v2026.5.1-abcdef` ## Типичный порядок выпуска 1. Обновите `release-notes.yml` в ветке `develop` — добавьте записи о релизе, которые должны войти в помечаемый тегом коммит. 2. Откройте и смерджите релизный PR из `develop` в `main`. 3. Соберите нужные прошивки локально с подходящими `FIRMWARE_VERSION` и `POSADMESH_VERSION`. 4. Создайте нужные теги релиза на целевом коммите в `main`. 5. Запушьте теги в git.meshinfo.ru. 6. Создайте релиз в веб-интерфейсе git.meshinfo.ru и приложите собранные файлы из `out/`. Если `release-notes.yml` должен отражать помеченный тегом релиз прошивки в репозитории, внесите это изменение до PR в `main`, чтобы помечаемый коммит уже содержал соответствующие примечания к релизу. Пример: ```bash export FIRMWARE_VERSION=v1.15.0 export POSADMESH_VERSION=v2026.5.1 bash posadmesh-build.sh build-observer-firmwares git tag observer-posadmesh-v2026.5.1 git push origin observer-posadmesh-v2026.5.1 ``` ## Поддерживаемые теги - `companion-wifi-v1.15.0` - `repeater-bridge-espnow-v1.15.0` - `observer-posadmesh-bridge-espnow-v2026.5.1` - `observer-posadmesh-bridge-mqtt-v2026.7.0` - `observer-posadmesh-v2026.5.1`