update
This commit is contained in:
@@ -3,74 +3,51 @@ set -euo pipefail
|
|||||||
|
|
||||||
cd /workspace
|
cd /workspace
|
||||||
|
|
||||||
# 1. Настройка переменных окружения
|
# Настройки
|
||||||
export VITE_API_URL="${VITE_API_URL:-${PUBLIC_API_URL:-http://localhost:3000}}"
|
|
||||||
export VITE_FRONTEND_URL="${VITE_FRONTEND_URL:-${PUBLIC_FRONTEND_URL:-http://localhost:3002}}"
|
|
||||||
export ANDROID_HOME="${ANDROID_HOME:-/opt/android-sdk}"
|
export ANDROID_HOME="${ANDROID_HOME:-/opt/android-sdk}"
|
||||||
export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME}}"
|
|
||||||
|
|
||||||
# Устанавливаем целевую версию Gradle Plugin.
|
|
||||||
# Можно переопределить через Docker: -e ANDROID_GRADLE_PLUGIN_VERSION=8.5.0
|
|
||||||
export ANDROID_GRADLE_PLUGIN_VERSION="${ANDROID_GRADLE_PLUGIN_VERSION:-8.3.2}"
|
export ANDROID_GRADLE_PLUGIN_VERSION="${ANDROID_GRADLE_PLUGIN_VERSION:-8.3.2}"
|
||||||
|
|
||||||
# Поиск NDK
|
# Поиск NDK
|
||||||
if [ -z "${ANDROID_NDK_HOME:-}" ]; then
|
if [ -z "${ANDROID_NDK_HOME:-}" ]; then
|
||||||
NDK_DIR="$(find "${ANDROID_HOME}/ndk" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | sort -V | tail -n 1 || true)"
|
NDK_DIR="$(find "${ANDROID_HOME}/ndk" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | sort -V | tail -n 1 || true)"
|
||||||
if [ -n "${NDK_DIR}" ]; then
|
[ -n "${NDK_DIR}" ] && export ANDROID_NDK_HOME="${NDK_DIR}"
|
||||||
export ANDROID_NDK_HOME="${NDK_DIR}"
|
|
||||||
export NDK_HOME="${NDK_DIR}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "==> Android SDK: ${ANDROID_HOME}"
|
|
||||||
echo "==> Android NDK: ${ANDROID_NDK_HOME:-не найден}"
|
|
||||||
echo "==> Целевая версия Android Gradle Plugin: ${ANDROID_GRADLE_PLUGIN_VERSION}"
|
|
||||||
|
|
||||||
if [ -z "${ANDROID_NDK_HOME:-}" ] || [ ! -d "${ANDROID_NDK_HOME}" ]; then
|
|
||||||
echo "Ошибка: Android NDK не найден." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p /out
|
mkdir -p /out
|
||||||
|
|
||||||
# 2. Сборка веб-части
|
echo "==> Сборка web-части..."
|
||||||
echo "==> Проверка web-сборки tauri_app"
|
|
||||||
npm --workspace @lendry/tauri-app run build
|
npm --workspace @lendry/tauri-app run build
|
||||||
|
|
||||||
cd /workspace/tauri_app
|
cd /workspace/tauri_app
|
||||||
|
|
||||||
# 3. Инициализация проекта
|
# Очистка и инициализация
|
||||||
if [ -d "src-tauri/gen/android" ]; then
|
[ -d "src-tauri/gen/android" ] && rm -rf src-tauri/gen/android
|
||||||
echo "==> Очистка предыдущего Android проекта Tauri"
|
echo "==> Инициализация..."
|
||||||
rm -rf src-tauri/gen/android
|
npm run android:init -- --ci
|
||||||
fi
|
|
||||||
|
|
||||||
echo "==> Инициализация Android проекта Tauri"
|
# --- ДИАГНОСТИКА: Посмотрим, что внутри файлов ---
|
||||||
npm run android:init -- --ci || npm run android:init
|
echo "==> Содержимое файлов gradle перед патчингом:"
|
||||||
|
find src-tauri/gen/android -name "libs.versions.toml" -o -name "build.gradle" -o -name "build.gradle.kts" | xargs grep -H "8.11.0" || echo "Версия 8.11.0 не найдена через grep!"
|
||||||
|
|
||||||
# 4. Принудительный патчинг всех файлов конфигурации Gradle
|
# --- ПАТЧИНГ: Более агрессивный метод ---
|
||||||
# Мы заменяем любые упоминания версии плагина на нашу стабильную версию
|
echo "==> Принудительный патчинг..."
|
||||||
echo "==> Патчинг конфигурации Gradle на версию ${ANDROID_GRADLE_PLUGIN_VERSION}"
|
|
||||||
|
|
||||||
find src-tauri/gen/android -type f \( -name "*.gradle" -o -name "*.gradle.kts" -o -name "*.toml" \) -print0 | xargs -0 sed -i -E \
|
# Заменяем вообще все вхождения 8.11.0 на 8.3.2 во всех файлах gradle/toml
|
||||||
-e "s/(com\.android\.tools\.build:gradle:)[0-9]+\.[0-9]+\.[0-9]+/\1${ANDROID_GRADLE_PLUGIN_VERSION}/g" \
|
find src-tauri/gen/android -type f \( -name "*.gradle" -o -name "*.gradle.kts" -o -name "*.toml" \) -print0 | \
|
||||||
-e "s/(id\(?['\"]com\.android\.application['\"]? version ['\"])[0-9]+\.[0-9]+\.[0-9]+/\1${ANDROID_GRADLE_PLUGIN_VERSION}/g" \
|
xargs -0 sed -i "s/8.11.0/${ANDROID_GRADLE_PLUGIN_VERSION}/g"
|
||||||
-e "s/(agp[[:space:]]*=[[:space:]]*['\"])[0-9]+\.[0-9]+\.[0-9]+/\1${ANDROID_GRADLE_PLUGIN_VERSION}/g"
|
|
||||||
|
|
||||||
# 5. Сборка APK
|
# Проверка результата
|
||||||
echo "==> Сборка Android APK"
|
echo "==> Содержимое файлов после патчинга:"
|
||||||
|
find src-tauri/gen/android -name "libs.versions.toml" -o -name "build.gradle" -o -name "build.gradle.kts" | xargs grep -H "${ANDROID_GRADLE_PLUGIN_VERSION}" || echo "Патчинг не сработал!"
|
||||||
|
|
||||||
|
# Сборка
|
||||||
|
echo "==> Сборка APK..."
|
||||||
npm run tauri -- android build --apk
|
npm run tauri -- android build --apk
|
||||||
|
|
||||||
# 6. Копирование результата
|
|
||||||
APK_PATH="$(find /workspace/tauri_app/src-tauri/gen/android -type f -name '*.apk' | sort | tail -n 1 || true)"
|
APK_PATH="$(find /workspace/tauri_app/src-tauri/gen/android -type f -name '*.apk' | sort | tail -n 1 || true)"
|
||||||
|
[ -f "${APK_PATH}" ] && cp "${APK_PATH}" /out/lendry-id.apk || exit 1
|
||||||
|
|
||||||
if [ -z "${APK_PATH}" ] || [ ! -f "${APK_PATH}" ]; then
|
echo "==> Готово."
|
||||||
echo "Ошибка: APK не найден после сборки" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp "${APK_PATH}" /out/lendry-id.apk
|
|
||||||
chmod 0644 /out/lendry-id.apk
|
|
||||||
|
|
||||||
echo "==> APK успешно собран: /out/lendry-id.apk"
|
echo "==> APK успешно собран: /out/lendry-id.apk"
|
||||||
ls -lh /out/lendry-id.apk
|
ls -lh /out/lendry-id.apk
|
||||||
Reference in New Issue
Block a user