40 lines
1.4 KiB
Bash
40 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
# Download AGP + AndroidX runtime deps into offline-maven for isolated LAN builds.
|
|
# Run once on a machine with internet, then commit tauri_app/docker/offline-maven/.
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
AGP_VERSION="${ANDROID_GRADLE_PLUGIN_VERSION:-8.11.0}"
|
|
RESOLVER="${ROOT}/docker/agp-resolver"
|
|
OFFLINE="${ROOT}/docker/offline-maven"
|
|
|
|
if [ ! -x "${RESOLVER}/gradlew" ]; then
|
|
echo "Gradle wrapper not found in ${RESOLVER}" >&2
|
|
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}"
|
|
|
|
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"
|
|
)
|
|
|
|
for file in "${required[@]}"; do
|
|
if [ ! -f "${file}" ]; then
|
|
echo "Missing required offline artifact: ${file}" >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
TOTAL_SIZE="$(du -sh "${OFFLINE}" | awk '{print $1}')"
|
|
ARTIFACTS="$(find "${OFFLINE}" \( -name '*.jar' -o -name '*.aar' \) | 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"
|