Files
IdP/tauri_app/docker/populate-offline-agp.sh

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"