@@ -290,12 +290,54 @@ jobs:
290290 uses : actions/checkout@v4
291291 with :
292292 submodules : true
293- # Setup JDK 11
294- - name : set up JDK 11
293+ # Setup JDK 17
294+ - name : set up JDK 17
295295 uses : actions/setup-java@v4
296296 with :
297- java-version : ' 11 '
297+ java-version : ' 17 '
298298 distribution : ' temurin'
299+ # Ensure Gradle uses this JDK (important when toolchains are present)
300+ - name : Point Gradle at JDK 17
301+ run : echo "ORG_GRADLE_JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
302+
303+ - name : Mirror ANDROID_HOME → ANDROID_SDK_ROOT
304+ run : echo "ANDROID_SDK_ROOT=$ANDROID_HOME" >> "$GITHUB_ENV"
305+
306+ # Install required Android components & accept licenses (NDK r28 + compileSdk 35)
307+ - name : Install Android SDK packages
308+ shell : bash
309+ run : |
310+ set -euo pipefail
311+ SDKROOT="${ANDROID_SDK_ROOT:-$ANDROID_HOME}"
312+ SDKMANAGER="$SDKROOT/cmdline-tools/latest/bin/sdkmanager"
313+
314+ # Some images have cmdline-tools already; ensure path exists
315+ if [[ ! -x "$SDKMANAGER" ]]; then
316+ echo "cmdline-tools not found; installing…"
317+ mkdir -p "$SDKROOT/cmdline-tools"
318+ curl -sSL -o /tmp/clt.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
319+ sudo unzip -q /tmp/clt.zip -d "$SDKROOT/cmdline-tools"
320+ sudo mv "$SDKROOT/cmdline-tools/cmdline-tools" "$SDKROOT/cmdline-tools/latest"
321+ SDKMANAGER="$SDKROOT/cmdline-tools/latest/bin/sdkmanager"
322+ fi
323+
324+ echo "Installing platform-tools, Build-Tools 35, platform android-35, NDK r28, and CMake…"
325+ # Avoid 'yes' SIGPIPE killing the step: turn off pipefail just for these lines
326+ set +o pipefail
327+ yes | sudo "$SDKMANAGER" --install \
328+ "platform-tools" \
329+ "build-tools;35.0.0" \
330+ "platforms;android-35" \
331+ "ndk;28.0.12433566" \
332+ "cmake;3.22.1"
333+
334+ yes | "$SDKMANAGER" --licenses
335+ set -o pipefail
336+
337+ # Quick sanity prints (non-fatal)
338+ "$SDKROOT/ndk/28.0.12433566/ndk-build" -v >/dev/null 2>&1 || true
339+ "$SDKMANAGER" --list | sed -n '1,80p' || true
340+
299341 # Build and publish locally for the test app to find the SNAPSHOT version
300342 - name : Build ${{ env.PACKAGE_NAME }}
301343 run : |
@@ -311,6 +353,22 @@ jobs:
311353 cd src/test/android/testapp/src/main/assets
312354 python3 -m pip install boto3
313355 python3 ./android_file_creation.py
356+
357+ - name : Set Android keystore home
358+ run : |
359+ echo "ANDROID_SDK_HOME=$GITHUB_WORKSPACE/.android-home" >> "$GITHUB_ENV"
360+ echo "ANDROID_PREFS_ROOT=$GITHUB_WORKSPACE/.android-home" >> "$GITHUB_ENV"
361+ mkdir -p "$GITHUB_WORKSPACE/.android-home/.android"
362+
363+ - name : Create debug keystore
364+ run : |
365+ keytool -genkeypair \
366+ -keystore "$ANDROID_SDK_HOME/.android/debug.keystore" \
367+ -storepass android -keypass android \
368+ -alias androiddebugkey \
369+ -dname "CN=Android Debug,O=Android,C=US" \
370+ -keyalg RSA -keysize 2048 -validity 14000
371+
314372 - name : Build Test App
315373 run : |
316374 cd src/test/android/testapp
0 commit comments