This commit is contained in:
lendry
2026-06-26 18:26:53 +03:00
parent 3a5281cc58
commit 95ef9a9862

View File

@@ -3,51 +3,55 @@ set -euo pipefail
cd /workspace cd /workspace
# Настройки 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_GRADLE_PLUGIN_VERSION="${ANDROID_GRADLE_PLUGIN_VERSION:-8.3.2}" export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME}}"
# Поиск 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)"
[ -n "${NDK_DIR}" ] && export ANDROID_NDK_HOME="${NDK_DIR}" if [ -n "${NDK_DIR}" ]; then
export ANDROID_NDK_HOME="${NDK_DIR}"
export NDK_HOME="${NDK_DIR}"
fi
fi
echo "==> Android SDK: ${ANDROID_HOME}"
echo "==> Android NDK: ${ANDROID_NDK_HOME:-не найден}"
if [ -z "${ANDROID_NDK_HOME:-}" ] || [ ! -d "${ANDROID_NDK_HOME}" ]; then
echo "Android NDK не найден в ${ANDROID_HOME}/ndk. Используйте Android SDK image с предустановленным NDK или примонтируйте SDK с NDK." >&2
exit 1
fi fi
mkdir -p /out mkdir -p /out
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
# Очистка и инициализация 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"
echo "==> Содержимое файлов gradle перед патчингом:" npm run android:init -- --ci || npm run android:init
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!"
# --- ПАТЧИНГ: Более агрессивный метод --- echo "==> Сборка Android APK (AGP из шаблона Tauri, без принудительного даунгрейда)"
echo "==> Принудительный патчинг..."
# Заменяем вообще все вхождения 8.11.0 на 8.3.2 во всех файлах gradle/toml
find src-tauri/gen/android -type f \( -name "*.gradle" -o -name "*.gradle.kts" -o -name "*.toml" \) -print0 | \
xargs -0 sed -i "s/8.11.0/${ANDROID_GRADLE_PLUGIN_VERSION}/g"
# Проверка результата
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
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
echo "==> Готово." if [ -z "${APK_PATH}" ] || [ ! -f "${APK_PATH}" ]; then
echo "APK не найден после сборки" >&2
find /workspace/tauri_app/src-tauri/gen/android -maxdepth 8 -type f | sort >&2 || true
exit 1
fi
echo "==> APK успешно собран: /out/lendry-id.apk" cp "${APK_PATH}" /out/lendry-id.apk
chmod 0644 /out/lendry-id.apk
echo "==> APK готов: /out/lendry-id.apk"
ls -lh /out/lendry-id.apk ls -lh /out/lendry-id.apk