From 714db175bf3e01f89aeb9eda5ea8d853ebca50f7 Mon Sep 17 00:00:00 2001 From: Kenjiro Nakayama Date: Mon, 7 Sep 2026 15:46:08 +0900 Subject: Test minimum and latest Android API levels Previously, Android CI built every API level from 26 through 30 for each supported ABI using the runner's default NDK. This PR changes the CI to: - Build each supported ABI against the minimum API level, API 26 - Build each supported ABI against the latest API provided by the NDK - Use the latest NDK preinstalled on the GitHub Actions runner - Replace the MIN_NAL/MAX_NAL range with one API per matrix job --- scripts/test | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) (limited to 'scripts/test') diff --git a/scripts/test b/scripts/test index b3386a8..10eb928 100755 --- a/scripts/test +++ b/scripts/test @@ -193,38 +193,30 @@ elif [ "$ARCH" = "mips32" ] || [ "$ARCH" = "mips64" ]; then elif [ "$ARCH" = "android" ]; then export TC_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake - # set target API level and architecture - level_arch="" - level=$MIN_NAL - while [ $level -le $MAX_NAL ] - do - level_arch="$level_arch $level;x86_64" - level_arch="$level_arch $level;x86" - level_arch="$level_arch $level;arm64-v8a" - - level=`expr $level + 1` - done - - echo "##### level_arch = $level_arch" + # ANDROID_PLATFORM is the native minSdkVersion, not the Android version used + # to run tests. "latest" selects the newest API provided by the NDK. + if [ "$ANDROID_API_LEVEL" = "latest" ]; then + ANDROID_PLATFORM=latest + else + ANDROID_PLATFORM=android-$ANDROID_API_LEVEL + fi - # build each API level and architecture - for la in $level_arch + # Build each architecture for the selected API level. + for ABI in x86_64 x86 arm64-v8a do - NAL=`echo $la | cut -d ';' -f 1` - ABI=`echo $la | cut -d ';' -f 2` echo "" - echo "##### Date: `date`, Native API level: $NAL, ABI: $ABI" + echo "##### Date: `date`, Native API level: $ANDROID_API_LEVEL, ABI: $ABI" ( - build_dir=build-$NAL_$ABI + build_dir=build-${ANDROID_API_LEVEL}_${ABI} rm -fr $build_dir mkdir $build_dir cd $build_dir - echo "##### cmake -GNinja -DCMAKE_MAKE_PROGRAM=ninja -DANDROID_NDK=$ANDROID_NDK_HOME -DCMAKE_TOOLCHAIN_FILE=$TC_FILE -DANDROID_ABI=$ABI -DANDROID_NATIVE_API_LEVEL=$NAL .." + echo "##### cmake -GNinja -DCMAKE_MAKE_PROGRAM=ninja -DANDROID_NDK=$ANDROID_NDK_HOME -DCMAKE_TOOLCHAIN_FILE=$TC_FILE -DANDROID_ABI=$ABI -DANDROID_PLATFORM=$ANDROID_PLATFORM .." cmake -GNinja -DCMAKE_MAKE_PROGRAM=ninja \ -DANDROID_NDK=$ANDROID_NDK_HOME \ -DCMAKE_TOOLCHAIN_FILE=$TC_FILE \ - -DANDROID_ABI=$ABI -DANDROID_NATIVE_API_LEVEL=$NAL \ + -DANDROID_ABI=$ABI -DANDROID_PLATFORM=$ANDROID_PLATFORM \ -DENABLE_ASM=${ENABLE_ASM} .. ninja -j 4 -- cgit v1.2.3-55-g6feb