Build: auto-clean stale Android bundles per build + clean target

Each android build now removes the regenerable AAB bundles
(intermediary_bundle, outputs/bundle) and gen APK copies once the final
APK is in binaries/; a manual 'clean' target does the same on demand.
Frees ~0.5G/cycle without touching the Rust incremental cache or
binaries/. (build.sh stays untracked - it holds a deploy secret; this
documents the change.)
This commit is contained in:
4aiman 2026-09-27 00:04:52 +03:00
commit dbb6c2ea9f
2 changed files with 22 additions and 5 deletions

View file

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

View file

@ -39,9 +39,24 @@
тривиальный guard вокруг уже работающих `panTo`/`setView`. Реальная проверка потока - на тривиальный guard вокруг уже работающих `panTo`/`setView`. Реальная проверка потока - на
телефоне. телефоне.
## Деплой build 475
`./build.sh -u -i -d android`: собран debug APK (0.1.475, 182М), залит на роутер
(http://192.168.1.1:88/baldav/baldav.apk, build 475) и VPS
(https://4aiman.top/baldav/baldav.apk, build 475), установлен на 320245779368 через
`adb install -r --user 0` - Success (подпись совпала, данные сохранены). Живую проверку тоггла
следования в реальной записи делает пользователь на телефоне.
## Чистка старых бандлов (build.sh)
Место забивалось регенерируемыми выхлопами Android-сборки. Добавлена `clean_bundles()` в
build.sh: удаляет `gen/android/app/build/intermediates/intermediary_bundle` +
`outputs/bundle` (AAB - мы раздаём APK) и `outputs/apk/*.apk`. НЕ трогает `src-tauri/target`
(14Г Rust-инкрементал, иначе полная пересборка) и `binaries/` (последние APK). Вызывается
авто в конце каждой android-сборки (после копии APK в binaries/) и вручную `./build.sh clean`.
Согласовано с пользователем: объём "только бандлы/APK", запуск "авто + ручная".
Разовый прогон: gen build 1.6G -> 1.0G, освобождено ~557 МБ.
## Следующие шаги ## Следующие шаги
- Сборка APK + установка на телефон (по явной просьбе пользователя): проверить в живой записи - - Живая проверка тоггла `⊕` на телефоне: проехать/постоять, отжать, подвигать карту (новые
проехать/постоять, отжать `⊕`, подвигать карту (новые точки не возвращают), вернуть кнопкой точки не возвращают), вернуть кнопкой (центрируется). Доработки - отдельным коммитом.
(центрируется). Доработки - отдельным коммитом.
- Компас (freeze `X`) и поворот карты не задеты (следование = только центр вида, поворот = - Компас (freeze `X`) и поворот карты не задеты (следование = только центр вида, поворот =
bearing) - убедиться на телефоне, что обе кнопки работают независимо. bearing) - убедиться, что обе кнопки работают независимо.