fix docker for tauri android build

This commit is contained in:
lendry
2026-06-27 00:10:28 +03:00
parent 886b7e9ade
commit 1a30e7e21c
98 changed files with 24218 additions and 68 deletions

View File

@@ -13,17 +13,49 @@ if [ ! -x "${RESOLVER}/gradlew" ]; then
exit 1
fi
echo "==> Resolving AGP ${AGP_VERSION} + AndroidX deps into ${OFFLINE}"
cd "${RESOLVER}"
chmod +x ./gradlew
sed -i 's/\r$//' ./gradlew 2>/dev/null || true
./gradlew exportAllOfflineMaven --no-daemon -PagpVersion="${AGP_VERSION}"
run_export() {
cd "${RESOLVER}"
chmod +x ./gradlew
sed -i 's/\r$//' ./gradlew 2>/dev/null || true
if [ -n "${ANDROID_HOME:-}" ]; then
printf 'sdk.dir=%s\n' "${ANDROID_HOME}" > local.properties
fi
./gradlew exportAllOfflineMaven --no-daemon -PagpVersion="${AGP_VERSION}"
"${ROOT}/docker/ensure-tauri-androidx-offline.sh"
}
echo "==> Resolving AGP ${AGP_VERSION} + Android runtime deps into ${OFFLINE}"
for script in "${ROOT}/docker/populate-offline-agp.sh" "${ROOT}/docker/ensure-tauri-androidx-offline.sh"; do
sed -i 's/\r$//' "${script}" 2>/dev/null || true
done
if [ -n "${ANDROID_HOME:-}" ] && [ -d "${ANDROID_HOME}/platforms" ]; then
run_export
elif command -v docker >/dev/null 2>&1; then
echo "==> ANDROID_HOME not set; using Docker (ghcr.io/cirruslabs/android-sdk:35-ndk)"
docker run --rm \
-v "${ROOT}/..:/workspace" \
-w /workspace/tauri_app/docker/agp-resolver \
-e ANDROID_HOME=/opt/android-sdk \
-e ANDROID_SDK_ROOT=/opt/android-sdk \
-e JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 \
ghcr.io/cirruslabs/android-sdk:35-ndk \
bash -lc "echo sdk.dir=\${ANDROID_HOME} > local.properties && ./gradlew exportAllOfflineMaven --no-daemon -PagpVersion=${AGP_VERSION} && /workspace/tauri_app/docker/ensure-tauri-androidx-offline.sh"
else
echo "Set ANDROID_HOME or install Docker to populate the offline AndroidX cache." >&2
exit 1
fi
required=(
"${OFFLINE}/com/android/tools/build/builder/${AGP_VERSION}/builder-${AGP_VERSION}.pom"
"${OFFLINE}/androidx/webkit/webkit/1.14.0/webkit-1.14.0.pom"
"${OFFLINE}/androidx/appcompat/appcompat/1.7.1/appcompat-1.7.1.pom"
"${OFFLINE}/androidx/browser/browser/1.8.0/browser-1.8.0.pom"
"${OFFLINE}/androidx/annotation/annotation/1.9.1/annotation-1.9.1.pom"
"${OFFLINE}/androidx/lifecycle/lifecycle-runtime/2.10.0/lifecycle-runtime-2.10.0.pom"
"${OFFLINE}/androidx/emoji2/emoji2-views-helper/1.2.0/emoji2-views-helper-1.2.0.pom"
"${OFFLINE}/androidx/savedstate/savedstate/1.2.1/savedstate-1.2.1.pom"
"${OFFLINE}/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.25/kotlin-gradle-plugin-1.9.25.pom"
)
@@ -34,7 +66,7 @@ for file in "${required[@]}"; do
fi
done
TOTAL_SIZE="$(du -sh "${OFFLINE}" | awk '{print $1}')"
ARTIFACTS="$(find "${OFFLINE}" \( -name '*.jar' -o -name '*.aar' \) | wc -l | tr -d ' ')"
TOTAL_SIZE="$(du -sh "${OFFLINE}" 2>/dev/null | awk '{print $1}' || echo '?')"
ARTIFACTS="$(find "${OFFLINE}" \( -name '*.jar' -o -name '*.aar' \) 2>/dev/null | wc -l | tr -d ' ')"
echo "==> Offline Maven cache ready: ${ARTIFACTS} jar/aar, total ${TOTAL_SIZE}"
echo "==> Commit tauri_app/docker/offline-maven/ and push to the server"