Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
50934e2ac6 |
@@ -87,6 +87,22 @@ RUN $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME \
|
|||||||
# Set NDK environment variable
|
# Set NDK environment variable
|
||||||
ENV NDK_HOME=$ANDROID_HOME/ndk/$NDK_VERSION
|
ENV NDK_HOME=$ANDROID_HOME/ndk/$NDK_VERSION
|
||||||
|
|
||||||
|
# Gradle distribution. `tauri android init` regenerates gen/android with a
|
||||||
|
# wrapper pointing at services.gradle.org, so every Android job would otherwise
|
||||||
|
# download ~130MB of Gradle at build time — slow, and a hard failure when the
|
||||||
|
# CDN hiccups ("Unexpected end of file from server"). Ship the distribution in
|
||||||
|
# the image instead; scripts/sync-android-sources.sh repoints the regenerated
|
||||||
|
# wrapper at this local copy. Keep GRADLE_VERSION in sync with the version
|
||||||
|
# Tauri's generated wrapper requests.
|
||||||
|
ENV GRADLE_VERSION=8.14.3 \
|
||||||
|
GRADLE_HOME=/opt/gradle/gradle-8.14.3
|
||||||
|
RUN mkdir -p /opt/gradle/dist && \
|
||||||
|
wget -q "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \
|
||||||
|
-O "/opt/gradle/dist/gradle-${GRADLE_VERSION}-bin.zip" && \
|
||||||
|
unzip -q "/opt/gradle/dist/gradle-${GRADLE_VERSION}-bin.zip" -d /opt/gradle && \
|
||||||
|
"$GRADLE_HOME/bin/gradle" --version
|
||||||
|
ENV PATH="$GRADLE_HOME/bin:$PATH"
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Desktop packaging tools — kept in a trailing layer ON PURPOSE so that adding
|
# Desktop packaging tools — kept in a trailing layer ON PURPOSE so that adding
|
||||||
# or changing a packaging tool doesn't invalidate the expensive apt/rust/Android
|
# or changing a packaging tool doesn't invalidate the expensive apt/rust/Android
|
||||||
|
|||||||
@@ -118,4 +118,26 @@ if [ -d "$RES_SRC" ]; then
|
|||||||
"$RES_DST"/drawable*/ic_launcher_background.xml
|
"$RES_DST"/drawable*/ic_launcher_background.xml
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Gradle wrapper distribution. `tauri android init` regenerates the wrapper
|
||||||
|
# pointing at services.gradle.org, so each build downloads ~130MB of Gradle —
|
||||||
|
# slow, and a hard failure when the CDN drops the connection mid-transfer
|
||||||
|
# ("Unexpected end of file from server"), which is what broke the release APK
|
||||||
|
# job. The builder image ships the matching distribution under /opt/gradle/dist,
|
||||||
|
# so when it's present repoint the wrapper at that local zip and build offline.
|
||||||
|
# Outside the image (dev machines) the properties file is left untouched and the
|
||||||
|
# wrapper downloads as usual.
|
||||||
|
WRAPPER_PROPS="$PROJECT_ROOT/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties"
|
||||||
|
if [ -f "$WRAPPER_PROPS" ]; then
|
||||||
|
WANTED_VERSION="$(sed -n 's#.*/gradle-\([0-9.]*\)-\(bin\|all\)\.zip.*#\1#p' "$WRAPPER_PROPS")"
|
||||||
|
LOCAL_DIST="/opt/gradle/dist/gradle-${WANTED_VERSION}-bin.zip"
|
||||||
|
if [ -n "$WANTED_VERSION" ] && [ -f "$LOCAL_DIST" ]; then
|
||||||
|
# distributionUrl is a java.util.Properties value: ':' must stay escaped.
|
||||||
|
sed -i "s#^distributionUrl=.*#distributionUrl=file\\\\:///opt/gradle/dist/gradle-${WANTED_VERSION}-bin.zip#" \
|
||||||
|
"$WRAPPER_PROPS"
|
||||||
|
echo " Gradle wrapper -> local distribution ($WANTED_VERSION, offline)"
|
||||||
|
elif [ -n "$WANTED_VERSION" ]; then
|
||||||
|
echo " Gradle wrapper: $WANTED_VERSION not in image, will download"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo "✓ Android sources synced successfully"
|
echo "✓ Android sources synced successfully"
|
||||||
|
|||||||
Reference in New Issue
Block a user