Add full offline Android Gradle Plugin dependency cache
This commit is contained in:
55
tauri_app/docker/patch-android-sdk.sh
Normal file
55
tauri_app/docker/patch-android-sdk.sh
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env bash
|
||||
# Align Tauri Android project with locally installed SDK (offline builds).
|
||||
set -euo pipefail
|
||||
|
||||
ANDROID_GEN="${1:-/workspace/tauri_app/src-tauri/gen/android}"
|
||||
ANDROID_HOME="${ANDROID_HOME:-/opt/android-sdk}"
|
||||
ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME}}"
|
||||
|
||||
if [ ! -d "${ANDROID_GEN}" ]; then
|
||||
echo "Android project not found: ${ANDROID_GEN}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "${ANDROID_HOME}/platforms" ] && [ -d /opt/android-sdk-linux/platforms ]; then
|
||||
ANDROID_HOME="/opt/android-sdk-linux"
|
||||
ANDROID_SDK_ROOT="${ANDROID_HOME}"
|
||||
fi
|
||||
|
||||
if [ ! -d "${ANDROID_HOME}/platforms" ]; then
|
||||
echo "Android platforms not found in ${ANDROID_HOME}/platforms" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SDK_LEVEL="$(
|
||||
find "${ANDROID_HOME}/platforms" -mindepth 1 -maxdepth 1 -type d -name 'android-*' \
|
||||
| sed 's|.*/android-||' \
|
||||
| sort -n \
|
||||
| tail -n 1
|
||||
)"
|
||||
|
||||
if [ -z "${SDK_LEVEL}" ]; then
|
||||
echo "Не удалось определить установленный Android SDK platform" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
APP_BUILD="${ANDROID_GEN}/app/build.gradle.kts"
|
||||
if [ -f "${APP_BUILD}" ]; then
|
||||
sed -i -E "s/compileSdk = [0-9]+/compileSdk = ${SDK_LEVEL}/g" "${APP_BUILD}"
|
||||
sed -i -E "s/targetSdk = [0-9]+/targetSdk = ${SDK_LEVEL}/g" "${APP_BUILD}"
|
||||
fi
|
||||
|
||||
GRADLE_PROPS="${ANDROID_GEN}/gradle.properties"
|
||||
touch "${GRADLE_PROPS}"
|
||||
if ! grep -q '^android.builder.sdkDownload=' "${GRADLE_PROPS}"; then
|
||||
printf '\n# Offline / isolated network: do not download SDK packages from Google\nandroid.builder.sdkDownload=false\n' >> "${GRADLE_PROPS}"
|
||||
else
|
||||
sed -i 's/^android.builder.sdkDownload=.*/android.builder.sdkDownload=false/' "${GRADLE_PROPS}"
|
||||
fi
|
||||
|
||||
cat > "${ANDROID_GEN}/local.properties" <<EOF
|
||||
## Autogenerated for offline Docker build. Do not commit.
|
||||
sdk.dir=${ANDROID_HOME}
|
||||
EOF
|
||||
|
||||
echo "==> Android SDK patched: compileSdk/targetSdk=${SDK_LEVEL}, sdk.dir=${ANDROID_HOME}, sdkDownload=false"
|
||||
Reference in New Issue
Block a user