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
This commit is contained in:
2026-10-11 17:20:05 +03:00
parent c86ae584ab
commit 26b724c0f0
19 changed files with 735 additions and 616 deletions
+53 -101
View File
@@ -6,6 +6,8 @@
Используйте эту страницу, когда изменяете прошивку, тестируете таргет перед релизом или собираете локальный артефакт, недоступный в разделе Releases.
Если сборка на своей машине не нужна, те же MQTT-прошивки можно собрать на сервере ручным workflow Gitea Actions (**Actions → Build MQTT firmwares → Run workflow**): он принимает версии `FIRMWARE_VERSION` и `POSADMESH_VERSION`, группу сборки (`all`, `uplink`, `espnow`, `bridge` или один таргет) и умеет сразу создать релиз Gitea с собранными файлами. Подробности — в [RELEASE.md](../RELEASE.md).
## Настройка
Из корня репозитория:
@@ -25,17 +27,16 @@ bash posadmesh-build.sh list
Обычная сборка PlatformIO для одного таргета:
```bash
uv run pio run -e heltec_v4_repeater_observer
uv run pio run -e heltec_v4_companion_radio_wifi
uv run pio run -e heltec_v4_repeater_mqtt
uv run pio run -e heltec_v4_repeater_bridge_espnow
uv run pio run -e heltec_v4_repeater_observer_espnow
uv run pio run -e Xiao_S3_WIO_repeater_observer_mqtt_bridge
uv run pio run -e heltec_v4_repeater_mqtt_espnow
uv run pio run -e Xiao_S3_WIO_repeater_mqtt_bridge
```
Прошивка таргета:
```bash
uv run pio run -e heltec_v4_repeater_observer -t upload --upload-port /dev/tty.usbmodemXXXX
uv run pio run -e heltec_v4_repeater_mqtt -t upload --upload-port /dev/tty.usbmodemXXXX
```
Монитор последовательного порта:
@@ -48,19 +49,12 @@ uv run pio device monitor --port /dev/tty.usbmodemXXXX --baud 115200
Если вам нужны те же метаданные версии, которые используются при выпуске релиза, сначала экспортируйте переменные версии.
Companion Wi-Fi:
```bash
export FIRMWARE_VERSION=v1.14.1
bash posadmesh-build.sh build-firmware heltec_v4_companion_radio_wifi
```
Обсервер:
MQTT-репитер:
```bash
export FIRMWARE_VERSION=v1.15.0
export POSADMESH_VERSION=v2026.5.1
bash posadmesh-build.sh build-firmware heltec_v4_repeater_observer
bash posadmesh-build.sh build-firmware heltec_v4_repeater_mqtt
```
Мост ESP-NOW репитера:
@@ -70,59 +64,59 @@ export FIRMWARE_VERSION=v1.15.0
bash posadmesh-build.sh build-firmware heltec_v4_repeater_bridge_espnow
```
Обсервер ESP-NOW:
MQTT-репитер ESP-NOW:
```bash
export FIRMWARE_VERSION=v1.15.0
export POSADMESH_VERSION=v2026.5.1
bash posadmesh-build.sh build-firmware heltec_v4_repeater_observer_espnow
bash posadmesh-build.sh build-firmware heltec_v4_repeater_mqtt_espnow
```
На выходе получаются артефакты с версиями в `out/`.
Правило версионирования:
- `companion-wifi` и `repeater-bridge-espnow` используют версию upstream MeshCore как `FIRMWARE_VERSION`
- `observer-posadmesh`, `observer-posadmesh-bridge-espnow` и `observer-posadmesh-bridge-mqtt` используют версию upstream MeshCore как `FIRMWARE_VERSION` плюс версию релиза PosadMesh как `POSADMESH_VERSION`
- `repeater-bridge-espnow` использует версию upstream MeshCore как `FIRMWARE_VERSION`
- `repeater-mqtt`, `repeater-mqtt-espnow` и `repeater-mqtt-bridge` используют версию upstream MeshCore как `FIRMWARE_VERSION` плюс версию релиза PosadMesh как `POSADMESH_VERSION`
## Поддерживаемые платы `repeater_observer`
## Поддерживаемые платы `repeater_mqtt`
Это полные имена окружений PlatformIO, используемые для локальных сборок из исходников и для именования артефактов релизов.
```text
Generic_E22_sx1262_repeater_observer
Generic_E22_sx1268_repeater_observer
Heltec_E213_repeater_observer
Heltec_E290_repeater_observer
Heltec_T190_repeater_observer
heltec_tracker_v2_repeater_observer
Heltec_v2_repeater_observer
Heltec_v3_repeater_observer
heltec_v4_repeater_observer
heltec_v4_tft_repeater_observer
Heltec_Wireless_Paper_repeater_observer
Heltec_Wireless_Tracker_repeater_observer
Heltec_WSL3_repeater_observer
LilyGo_T3S3_sx1262_repeater_observer
LilyGo_T3S3_sx1276_repeater_observer
LilyGo_TBeam_1W_repeater_observer
LilyGo_TDeck_repeater_observer
LilyGo_Tlora_C6_repeater_observer
M5Stack_Unit_C6L_repeater_observer
Meshadventurer_sx1262_repeater_observer
Meshadventurer_sx1268_repeater_observer
Meshimi_repeater_observer
nibble_screen_connect_repeater_observer
RAK_3112_repeater_observer
Station_G2_logging_repeater_observer
Station_G2_repeater_observer
T_Beam_S3_Supreme_SX1262_repeater_observer
Tbeam_SX1262_repeater_observer
Tbeam_SX1276_repeater_observer
WHY2025_badge_repeater_observer
Xiao_C6_repeater_observer
Xiao_S3_LoRa2021F33-2G4_repeater_observer
Xiao_S3_WIO_repeater_observer
Generic_E22_sx1262_repeater_mqtt
Generic_E22_sx1268_repeater_mqtt
Heltec_E213_repeater_mqtt
Heltec_E290_repeater_mqtt
Heltec_T190_repeater_mqtt
heltec_tracker_v2_repeater_mqtt
Heltec_v2_repeater_mqtt
Heltec_v3_repeater_mqtt
heltec_v4_repeater_mqtt
heltec_v4_tft_repeater_mqtt
Heltec_Wireless_Paper_repeater_mqtt
Heltec_Wireless_Tracker_repeater_mqtt
Heltec_WSL3_repeater_mqtt
LilyGo_T3S3_sx1262_repeater_mqtt
LilyGo_T3S3_sx1276_repeater_mqtt
LilyGo_TBeam_1W_repeater_mqtt
LilyGo_TDeck_repeater_mqtt
LilyGo_Tlora_C6_repeater_mqtt
M5Stack_Unit_C6L_repeater_mqtt
Meshadventurer_sx1262_repeater_mqtt
Meshadventurer_sx1268_repeater_mqtt
Meshimi_repeater_mqtt
nibble_screen_connect_repeater_mqtt
RAK_3112_repeater_mqtt
Station_G2_logging_repeater_mqtt
Station_G2_repeater_mqtt
T_Beam_S3_Supreme_SX1262_repeater_mqtt
Tbeam_SX1262_repeater_mqtt
Tbeam_SX1276_repeater_mqtt
WHY2025_badge_repeater_mqtt
Xiao_C6_repeater_mqtt
Xiao_S3_LoRa2021F33-2G4_repeater_mqtt
Xiao_S3_WIO_repeater_mqtt
```
## Поддерживаемые платы мостов
@@ -131,70 +125,28 @@ Xiao_S3_WIO_repeater_observer
```bash
bash posadmesh-build.sh list | grep '_repeater_bridge_espnow'
bash posadmesh-build.sh list | grep '_repeater_observer_espnow'
bash posadmesh-build.sh list | grep '_repeater_mqtt_espnow'
```
Типичные примеры:
```text
heltec_v4_repeater_bridge_espnow
heltec_v4_repeater_observer_espnow
heltec_v4_repeater_mqtt_espnow
Station_G2_repeater_bridge_espnow
Station_G2_repeater_observer_espnow
Station_G2_repeater_mqtt_espnow
T_Beam_S3_Supreme_SX1262_repeater_bridge_espnow
T_Beam_S3_Supreme_SX1262_repeater_observer_espnow
T_Beam_S3_Supreme_SX1262_repeater_mqtt_espnow
```
## Поддерживаемые платы `repeater_observer_mqtt_bridge`
## Поддерживаемые платы `repeater_mqtt_bridge`
Для каждой платы обсервера определён вариант сборки `mqtt_bridge`.
Для каждой платы MQTT-репитера определён вариант сборки `mqtt_bridge`.
Список доступных таргетов:
```bash
bash posadmesh-build.sh list | grep '_repeater_observer_mqtt_bridge'
bash posadmesh-build.sh list | grep '_repeater_mqtt_bridge'
```
Прошивка моста предназначена для локального использования ESP-NOW-моста между близлежащими репитерами. Это не мост MQTT-over-WAN и не VPN-мост.
## Поддерживаемые платы `companion_radio_wifi`
Это полные имена окружений PlatformIO, используемые для локальных сборок из исходников и для именования артефактов релизов.
```text
heltec_tracker_v2_companion_radio_wifi
Heltec_v2_companion_radio_wifi
Heltec_v3_companion_radio_wifi
heltec_v4_companion_radio_wifi
heltec_v4_tft_companion_radio_wifi
Heltec_WSL3_companion_radio_wifi
LilyGo_TBeam_1W_companion_radio_wifi
LilyGo_TLora_V2_1_1_6_companion_radio_wifi
nibble_screen_connect_companion_radio_wifi
RAK_3112_companion_radio_wifi
Station_G2_companion_radio_wifi
T_Beam_S3_Supreme_SX1262_companion_radio_wifi
ThinkNode_M2_companion_radio_wifi
ThinkNode_M5_companion_radio_wifi
Xiao_S3_LoRa2021F33-2G4_companion_radio_wifi
Xiao_S3_WIO_companion_radio_wifi
```
## CLI companion Wi-Fi
Текущие сборки companion Wi-Fi поддерживают сохраняемые команды восстановления Wi-Fi:
- откройте монитор последовательного порта на скорости `115200` бод
- перезагрузите устройство
- в течение первых 8 секунд после загрузки зажмите пользовательскую кнопку, чтобы войти в `CLI Rescue`
- дождитесь `========= CLI Rescue =========`
- затем выполните приведённые ниже команды восстановления Wi-Fi из монитора последовательного порта
```text
get wifi.status
get wifi.ssid
get wifi.powersaving
set wifi.ssid <ssid>
set wifi.pwd <password>
set wifi.powersaving none|min|max
```