ZapretKVN-android/scripts/build-test-bundle.sh
loop-uh ac64b1b4af
Some checks failed
Android CI / build (push) Has been cancelled
Модули: :core:model и :feature:{home,servers,routing,settings}
- :core:model: типы значений для UI (состояние VPN, профили, маршруты,
  приложения, диагностика, настройки, обновления) с прежними пакетами;
  типы обновлений вынесены из :app-updater, смешанные файлы разделены.
- :feature:*: экраны, презентеры и их JVM-тесты; *Route.kt, ViewModel,
  BuildConfig и QR-лаунчеры остаются в :app. Общие флаги, release notes,
  PresetPicker, DiagnosticShareButton — в :core:designsystem, форматтер
  задержки и ScreenshotPrivacy — в :core:ui-model.
- verify-project.sh: запрет зависимости :feature:* от :app и импорта рантайма
  VPN/ViewModel/AppContainer из feature/**; пути delay и AboutPage обновлены.
- CI и build-test-bundle запускают testDebugUnitTest всех модулей.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:37:48 +03:00

30 lines
1.2 KiB
Shell
Executable file

#!/usr/bin/env bash
set -euo pipefail
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TAG="${1:?test tag is required}"
OUTPUT_DIR="${2:-$PROJECT_ROOT/build/local-test/$TAG}"
MATRIX_DIR="$PROJECT_ROOT/app/build/outputs/apk/matrix/test-$TAG"
while IFS='=' read -r name value; do
case "$name" in
ZAPRET_VERSION_NAME|ZAPRET_VERSION_CODE|ZAPRET_PRERELEASE|ZAPRET_RELEASE_CHANNEL)
export "$name=$value"
;;
*) echo "Unexpected test version variable: $name" >&2; exit 1 ;;
esac
done < <("$PROJECT_ROOT/scripts/derive-test-version.sh" "$TAG")
export ZAPRET_DEBUG_VERSION_NAME_SUFFIX=''
cd "$PROJECT_ROOT"
scripts/verify-project.sh
./gradlew testDebugUnitTest :app:compileDebugAndroidTestKotlin
scripts/build-apk-matrix.sh debug "$MATRIX_DIR"
scripts/create-test-bundle.sh "$TAG" "$MATRIX_DIR" "$OUTPUT_DIR"
scripts/verify-test-bundle.sh "$TAG" "$OUTPUT_DIR"
# The per-tag debug matrix is only an input to the bundle; drop it and older bundles.
rm -rf -- "$MATRIX_DIR"
scripts/prune-local-archive.sh "$PROJECT_ROOT/build/local-test" "$TAG" \
|| echo "Warning: local test archive pruning failed." >&2
echo "Local emulator-only test bundle is ready: $OUTPUT_DIR"