Docs: desktop builds for Linux/Windows/macOS and router upload via build.sh

build.sh itself is gitignored; this records the new targets (linux, windows,
macos, release, upload), the router file names and the osxcross location so
the flow is reproducible.
This commit is contained in:
4aiman 2026-10-19 22:47:44 +03:00
commit 1d133d0067
3 changed files with 41 additions and 1 deletions

View file

@ -81,7 +81,7 @@
| Файл | Назначение |
|------|------------|
| `build.sh` | Сборка: android/debug/release, sync frontend, версионирование, -u upload на VPS, `clean`/авто-чистка старых бандлов (`clean_bundles`) |
| `build.sh` | Сборка: android/debug/release, ПК linux/windows/macos (кросс), sync frontend, версионирование (один бамп за запуск), -u upload APK на роутер+VPS, `upload` всех ОС на роутер (`upload_router`), `clean`/авто-чистка старых бандлов (`clean_bundles`) |
| `BUILD_NUMBER` | Автоинкремент номера сборки |
| `ion_products.json` | 1111 продуктов ION (сырые данные скрейпера) |
| `5ka_products_fresh.json` | 3103 продукта 5ka (сырые данные) |
@ -261,6 +261,9 @@ kcal = (dt/60) * (MET * 3.5 * weight_kg) / 200
./build.sh -u -d android # debug + install + заливка на роутер/VPS (OTA)
./build.sh install -d # поставить уже собранный APK без пересборки
./build.sh clean # убрать старые AAB-бандлы и APK-выхлопы gen/ (Rust-кэш и binaries/ не трогает)
./build.sh linux|windows|macos # ПК под одну ОС (windows - mingw, macos - osxcross, оба кросс)
./build.sh release # все ПК
./build.sh upload # release APK + все ПК, один номер, -> keenetic:/opt/share/www/baldav
```
Без таргета `./build.sh` = dev-сервер (десктоп), НЕ сборка APK.
`clean_bundles` также вызывается автоматически в конце каждой android-сборки (после копии APK в binaries/): удаляет `gen/.../intermediary_bundle` + `outputs/bundle` (AAB, мы раздаём APK) и `outputs/apk/*.apk`. Регенерируются Gradle при следующей сборке.

View file

@ -72,8 +72,19 @@
./build.sh -i android -d # debug + установка на устройство
./build.sh -u android # release + upload на роутер (LAN) и VPS (OTA)
./build.sh -d -i -u android # debug + install + upload
./build.sh linux # ПК Linux: .deb, .rpm, .AppImage
./build.sh windows # ПК Windows: NSIS-установщик (кросс, mingw)
./build.sh macos # ПК macOS: .app в zip, Intel + Apple Silicon (кросс, osxcross)
./build.sh release # linux + windows + macos
./build.sh upload # release APK + все ПК под одним номером -> роутер
```
`upload` кладёт в `http://192.168.1.1:88/baldav/`: `baldav.apk`, `baldav-linux-amd64.deb`,
`baldav-linux-x86_64.rpm`, `baldav-linux-x86_64.AppImage`, `baldav-windows-x64-setup.exe`,
`baldav-macos-x64.zip`, `baldav-macos-arm64.zip`; `BUILD_NUMBER` пишется последним. Если хоть
одна платформа не собралась - не выкладывается ничего. Кросс-сборка под macOS берёт osxcross из
`$OSXCROSS` (по умолчанию `/mnt/02F6E7F6F6E7E7BD/osxcross`, SDK 12.3 из fpcupdeluxe).
## Версия и трассируемость сборки
Чтобы по розданному APK однозначно находить, где регресс/косяк:

View file

@ -0,0 +1,26 @@
# 2026-10-19 - выкатка на роутер сборок под все ОС
## Контекст
По образцу `upload` из соседнего проекта nlve (`build.sh`): одной командой собрать Android + ПК
(Linux, Windows, macOS Intel/Apple Silicon) под одним номером и выложить на роутер.
Работали по утверждённому плану: `docs/plans/2026-10-19-router-upload-all-os.md`.
## Действия
- `build.sh`: `update_version` срабатывает раз за запуск; цели `linux`/`desktop`, `windows`
(`x86_64-pc-windows-gnu`, NSIS), `macos` (osxcross, `--bundles app`, zip), `release`, `upload`;
`upload_router` (ssh по ключу, файлы первыми, `BUILD_NUMBER` последним), итог `finish` со списком упавших.
Выкладываются только файлы, собранные в этом запуске. `-u` у `android` не менялся (APK на роутер+VPS).
- osxcross в `/mnt/02F6E7F6F6E7E7BD/osxcross` не был собран (не было `target/` и SDK в `tarballs/`).
SDK 12.3 упакован из fpcupdeluxe (`cross/lib/all-darwin/MacOSX12.3.sdk`) в `tarballs/`.
Сборка osxcross с clang++ падала: clang выбирает GCC 14, а `libstdc++-14-dev` не установлен ->
собран с `CC=gcc CXX=g++`.
- `rustup target add x86_64-apple-darwin aarch64-apple-darwin`.
- AppImage, которого не было после сборки 0.1.499, при повторной упаковке собрался; причина
прошлого отсутствия не выяснена.
## Результат
См. раздел «Проверка» ниже (дополняется по ходу).
## Проверка
## Следующие шаги