- добавлен ручной workflow Gitea Actions (.gitea/workflows/build-mqtt-firmwares.yml): сборка MQTT-прошивок на сервере и публикация релиза - добавлен posadmesh-tools/publish-gitea-release.sh для выгрузки собранных файлов в релиз Gitea (идемпотентно, фильтр по треку) - README: происхождение проекта переписано (форк EastMesh, доработка энтузиастов из Сергиева Посада, ориентация на meshcoretel.ru), добавлены раздел «Отличия от upstream MeshCore» и журнал «Изменения в проекте» - убраны упоминания Австралии, ссылки на eastmesh.au и региональные материалы; руководство по прошивке переведено на файлы релизов и esptool.py - posadmesh-build.sh: вывод PlatformIO очищается от \r — на Windows групповые команды сборки не находили ни одной цели; companion-команды удалены, добавлены build-mqtt-firmwares и list-mqtt - release-notes.yml: треки repeater-mqtt*, запись 2026.10.0 дополнена удалением companion и исправлением сборки, companion-wifi помечен как снятый с выпуска - AGENTS.md: правило дописывать изменения в README - .gitignore: .pio-home
7.8 KiB
Выпуск прошивок
Репозиторий живёт на https://git.meshinfo.ru/shade/MeshCore-Posadmesh. Прошивки собираются локально через posadmesh-build.sh или на сервере ручным workflow Gitea Actions; теги и релизы создаются в веб-интерфейсе git.meshinfo.ru.
Сборка на сервере (Gitea Actions)
Ручной workflow .gitea/workflows/build-mqtt-firmwares.yml запускается из веб-интерфейса: Actions → Build MQTT firmwares → Run workflow.
Параметры запуска:
firmware_version— версия upstream MeshCore для метаданных (напримерv1.17.1);posadmesh_version— версия релиза PosadMesh (напримерv2026.10.0);group— что собирать:all(все MQTT-таргеты),uplink,espnow,bridgeилиsingle;target— имя окружения PlatformIO, еслиgroup=single(напримерheltec_v4_repeater_mqtt);publish—true, чтобы создать релиз Gitea и загрузить в него файлы (falseпо умолчанию — только артефакты сборки);tag— тег релиза приpublish=true(напримерrepeater-mqtt-v2026.10.0).
Для публикации в репозитории должен быть задан секрет GITEA_TOKEN (personal access token с правом write:repository).
Требования к раннеру: Linux с Docker, интернет, python3 ≥ 3.11, git, curl и не меньше 20 ГБ свободного места — PlatformIO скачивает тулчейны ESP32 при первой сборке (шаг кэша ~/.platformio ускоряет последующие запуски). Полная сборка всех MQTT-таргетов идёт долго, поэтому удобнее запускать по группам.
Ручная выгрузка в релиз
Если прошивки собраны локально (каталог out/), файлы можно загрузить в релиз Gitea скриптом:
GITEA_TOKEN=<token> posadmesh-tools/publish-gitea-release.sh \
repeater-mqtt-v2026.10.0 out "Repeater MQTT v2026.10.0"
Скрипт создаёт релиз, если его ещё нет, и повторный запуск не дублирует уже загруженные файлы. Адрес инстанса и репозиторий можно переопределить переменными GITEA_URL и GITEA_REPO.
Тег удобнее создать заранее на нужном коммите (см. порядок выпуска ниже): тогда релиз привяжется к существующему тегу. Если тега нет, Gitea создаст его сам от HEAD ветки по умолчанию — для релизов этого лучше избегать.
Каждый трек публикуется в свой релиз: соберите группу (uplink, espnow или bridge) и выгрузите её файлы под тегом этого трека. Каталог out/ очищается в начале каждой сборки, поэтому в релиз попадут файлы только одной группы.
Версии сборки
FIRMWARE_VERSION— версия upstream MeshCore, на которой основана сборка (напримерv1.15.0)POSADMESH_VERSION— версия релиза PosadMesh (напримерv2026.5.1)
Обе задаются переменными окружения перед запуском сборки:
export FIRMWARE_VERSION=v1.15.0
export POSADMESH_VERSION=v2026.5.1
bash posadmesh-build.sh build-firmware heltec_v4_repeater_mqtt
Теги релизов PosadMesh
Один или несколько тегов следующих форматов помечают релиз соответствующего трека:
repeater-bridge-espnow-v1.15.0repeater-mqtt-espnow-v2026.5.1repeater-mqtt-bridge-v2026.7.0repeater-mqtt-v2026.5.1
В repeater-bridge-espnow-v1.15.0 используется версия upstream MeshCore.
В repeater-mqtt-espnow-v2026.5.1 используется версия релиза PosadMesh.
В repeater-mqtt-bridge-v2026.7.0 используется версия релиза PosadMesh.
В repeater-mqtt-v2026.5.1 используется версия релиза PosadMesh.
Соответствие тегов и треков:
repeater-bridge-espnow-v*— прошивка ESP-NOW-моста репитераrepeater-mqtt-espnow-v*— прошивка MQTT-репитера с ESP-NOWrepeater-mqtt-bridge-v*— прошивка MQTT-репитера с MQTT-мостомrepeater-mqtt-v*— прошивка MQTT-репитера
Сборка выполняется локально для нужного таргета; тегов на одном коммите может быть несколько.
Итоговая версия прошивки
repeater-bridge-espnowиспользует версию из тега какFIRMWARE_VERSIONrepeater-mqtt-espnowиспользуетFIRMWARE_VERSIONupstream MeshCore, а версию PosadMesh из тега — какPOSADMESH_VERSIONrepeater-mqtt-bridgeиспользуетFIRMWARE_VERSIONupstream MeshCore, а версию PosadMesh из тега — какPOSADMESH_VERSIONrepeater-mqttиспользуетFIRMWARE_VERSIONupstream MeshCore, а версию PosadMesh из тега — какPOSADMESH_VERSION
Итоговая строка версии зависит от трека:
repeater-bridge-espnow:v1.15.0-<commit>repeater-mqtt-espnow:v1.15.0-posadmesh-v2026.5.1-<commit>repeater-mqtt-bridge:v1.15.0-posadmesh-v2026.7.0-<commit>repeater-mqtt:v1.15.0-posadmesh-v2026.5.1-<commit>
Пример:
- тег:
repeater-mqtt-v2026.5.1 - переменные:
FIRMWARE_VERSION=v1.15.0,POSADMESH_VERSION=v2026.5.1 - итоговая версия сборки:
v1.15.0-posadmesh-v2026.5.1-abcdef
Типичный порядок выпуска
- Обновите
release-notes.ymlв веткеdevelop— добавьте записи о релизе, которые должны войти в помечаемый тегом коммит. - Откройте и смерджите релизный PR из
developвmain. - Соберите нужные прошивки локально с подходящими
FIRMWARE_VERSIONиPOSADMESH_VERSION. - Создайте нужные теги релиза на целевом коммите в
main. - Запушьте теги в git.meshinfo.ru.
- Создайте релиз в веб-интерфейсе git.meshinfo.ru и приложите собранные файлы из
out/.
Если release-notes.yml должен отражать помеченный тегом релиз прошивки в репозитории, внесите это изменение до PR в main, чтобы помечаемый коммит уже содержал соответствующие примечания к релизу.
Пример:
export FIRMWARE_VERSION=v1.15.0
export POSADMESH_VERSION=v2026.5.1
bash posadmesh-build.sh build-repeater-mqtt-firmwares
git tag repeater-mqtt-v2026.5.1
git push origin repeater-mqtt-v2026.5.1
Поддерживаемые теги
repeater-bridge-espnow-v1.15.0repeater-mqtt-espnow-v2026.5.1repeater-mqtt-bridge-v2026.7.0repeater-mqtt-v2026.5.1