Skip to content

CI: сборка и юнит-тесты Android, бейдж, .gitignore - #1

Merged
maximkr merged 1 commit into
mainfrom
ci/android-build
Aug 12, 2026
Merged

CI: сборка и юнит-тесты Android, бейдж, .gitignore#1
maximkr merged 1 commit into
mainfrom
ci/android-build

Conversation

@maximkr

@maximkr maximkr commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Что было

В репозитории не было ни одного workflow. При этом в app/src/test/ лежат четыре класса рабочих тестов с настоящими ассертами:

  • EpcTargetNormalizerTest — нормализация EPC, отсев не-hex, паддинг под 6/8-словный EPC
  • RadarPowerWindowControllerTest — логика окна мощности радара
  • UhfConnectionControllerTest — порядок инициализации ридера, освобождение старого, ретраи с бэкоффом
  • BarcodeSoundPolicyTest — отключение вендорных звуков сканера

Ни один из них ни разу не запускался автоматически.

Что добавлено

Workflow Android (.github/workflows/android.yml)

./gradlew testDebugUnitTest и assembleDebug на JDK 17 с Android SDK и кешем Gradle. Отчёты тестов и debug APK выкладываются артефактами прогона — APK можно скачать прямо со страницы прогона и поставить на C5, не собирая локально.

Плюс concurrency с отменой устаревших прогонов, permissions: contents: read и workflow_dispatch для ручного запуска.

.gitignore

Его не было вовсе. Для Android-проекта это заметный риск: в коммит легко утекают build/, .idea/ и local.properties (последний содержит локальный путь к SDK и у каждого свой). Сейчас в индексе таких файлов нет — добавляю, чтобы и не появились.

README

Бейджи статуса сборки и лицензии.

Замечания

  • JDK 17 выбран под AGP 8.13.2. Модуль компилируется с jvmTarget = 11, это не конфликт: 11 — версия байткода приложения, 17 — версия JVM, на которой работает сам Gradle с AGP.
  • compileSdk = 37 — свежий API. Если раннер не найдёт платформу в предустановленном SDK, android-actions/setup-android её дотянет; если сборка на этом споткнётся, лечится добавлением явного sdkmanager "platforms;android-37". Прогон этого PR покажет.
  • Инструментальные тесты (app/src/androidTest/) в CI не запускаются: им нужен эмулятор, это отдельный джоб с reactivecircus/android-emulator-runner и заметно большим временем прогона. Могу добавить, если нужно.
  • Локально проверить сборку не мог — Android SDK на машине не установлен, проверка делается этим прогоном CI.

🤖 Generated with Claude Code

В репозитории не было ни одного workflow, притом в app/src/test лежат
четыре класса рабочих тестов с ассертами, которые нигде не запускались.

Workflow Android (.github/workflows/android.yml):
- ./gradlew testDebugUnitTest и assembleDebug на JDK 17 с кешем Gradle
- отчеты тестов и debug APK выкладываются артефактами прогона
- concurrency-группа, permissions: contents: read, workflow_dispatch

Добавлен .gitignore: его не было вовсе, а это Android-проект, где
в коммит легко утекают build/, .idea/ и local.properties.

README: бейдж статуса сборки и лицензии.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@maximkr
maximkr merged commit b9274f0 into main Aug 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant