- add `help` target and make it the default goal (bare `make` lists targets) - add `install-android-app`: build debug APK and install on the selected device - device selection via SERIAL/$ANDROID_SERIAL; several devices list and stop - document the target in android/README.md
3.5 KiB
Spec Delta
Purpose
Make-интерфейс разработчика: установка Android-клиента на выбранное устройство и обзор доступных целей сборки.
ADDED Requirements
Requirement: Установка Android-приложения через Make-цель
Проект SHALL предоставлять Make-цель install-android-app, которая собирает debug-APK
Android-клиента и устанавливает его на выбранное устройство. Повторный запуск SHALL
переустанавливать приложение без ручного удаления.
Scenario: Установка на устройство
- WHEN цель запущена и устройство выбрано
- THEN собирается debug-APK и устанавливается на это устройство
Scenario: Повторная установка
- WHEN приложение уже установлено и цель запущена снова
- THEN установка завершается успешно без ручного удаления приложения
Requirement: Выбор устройства для установки
Цель установки SHALL брать устройство из явно заданного серийного номера, а при его отсутствии — из единственного подключённого устройства. Если подключено несколько устройств и серийный номер не задан, цель SHALL напечатать список устройств и SHALL не выполнять установку.
Scenario: Серийный номер задан
- WHEN задан серийный номер устройства
- THEN приложение устанавливается именно на это устройство
Scenario: Единственное устройство
- WHEN серийный номер не задан и подключено ровно одно устройство
- THEN приложение устанавливается на него
Scenario: Несколько устройств без выбора
- WHEN серийный номер не задан и подключено несколько устройств
- THEN цель печатает список устройств, не выполняет установку и завершается ненулевым кодом
Scenario: Нет устройств
- WHEN не подключено ни одного устройства
- THEN цель сообщает об ошибке и завершается ненулевым кодом
Requirement: Обзор доступных Make-целей
Голый make (без цели) SHALL печатать список доступных целей и SHALL не запускать
сборку. Любая цель, включая сборку фронтенда, SHALL оставаться доступной по явному имени.
Scenario: Голый make
- WHEN
makeзапущен без цели - THEN печатается список доступных целей, сборка не запускается
Scenario: Явная цель
- WHEN
makeзапущен с именем цели, напримерmake frontend - THEN выполняется именно эта цель