Files
shade 26b724c0f0 feat: manual Gitea build workflow, release publishing, README and docs update
- добавлен ручной 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
2026-10-11 17:20:05 +03:00

7.8 KiB
Raw Permalink Blame History

Выпуск прошивок

Репозиторий живёт на 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.0
  • repeater-mqtt-espnow-v2026.5.1
  • repeater-mqtt-bridge-v2026.7.0
  • repeater-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-NOW
  • repeater-mqtt-bridge-v* — прошивка MQTT-репитера с MQTT-мостом
  • repeater-mqtt-v* — прошивка MQTT-репитера

Сборка выполняется локально для нужного таргета; тегов на одном коммите может быть несколько.

Итоговая версия прошивки

  • repeater-bridge-espnow использует версию из тега как FIRMWARE_VERSION
  • repeater-mqtt-espnow использует FIRMWARE_VERSION upstream MeshCore, а версию PosadMesh из тега — как POSADMESH_VERSION
  • repeater-mqtt-bridge использует FIRMWARE_VERSION upstream MeshCore, а версию PosadMesh из тега — как POSADMESH_VERSION
  • repeater-mqtt использует FIRMWARE_VERSION upstream 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

Типичный порядок выпуска

  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, чтобы помечаемый коммит уже содержал соответствующие примечания к релизу.

Пример:

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.0
  • repeater-mqtt-espnow-v2026.5.1
  • repeater-mqtt-bridge-v2026.7.0
  • repeater-mqtt-v2026.5.1