aboutsummaryrefslogtreecommitdiff
path: root/scripts/test
diff options
context:
space:
mode:
authorKenjiro Nakayama <nakayamakenjiro@gmail.com>2026-09-07 15:46:08 +0900
committerKenjiro Nakayama <nakayamakenjiro@gmail.com>2026-09-07 15:52:28 +0900
commit714db175bf3e01f89aeb9eda5ea8d853ebca50f7 (patch)
treea7d23b877cd1f97601e8ae22d6b6a3c5b3ec803c /scripts/test
parentd63a1f105815c3fe4ffd954443541bff5259cedf (diff)
downloadportable-714db175bf3e01f89aeb9eda5ea8d853ebca50f7.tar.gz
portable-714db175bf3e01f89aeb9eda5ea8d853ebca50f7.tar.bz2
portable-714db175bf3e01f89aeb9eda5ea8d853ebca50f7.zip
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
Diffstat (limited to 'scripts/test')
-rwxr-xr-xscripts/test34
1 files changed, 13 insertions, 21 deletions
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
193elif [ "$ARCH" = "android" ]; then 193elif [ "$ARCH" = "android" ]; then
194 export TC_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake 194 export TC_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake
195 195
196 # set target API level and architecture 196 # ANDROID_PLATFORM is the native minSdkVersion, not the Android version used
197 level_arch="" 197 # to run tests. "latest" selects the newest API provided by the NDK.
198 level=$MIN_NAL 198 if [ "$ANDROID_API_LEVEL" = "latest" ]; then
199 while [ $level -le $MAX_NAL ] 199 ANDROID_PLATFORM=latest
200 do 200 else
201 level_arch="$level_arch $level;x86_64" 201 ANDROID_PLATFORM=android-$ANDROID_API_LEVEL
202 level_arch="$level_arch $level;x86" 202 fi
203 level_arch="$level_arch $level;arm64-v8a"
204
205 level=`expr $level + 1`
206 done
207
208 echo "##### level_arch = $level_arch"
209 203
210 # build each API level and architecture 204 # Build each architecture for the selected API level.
211 for la in $level_arch 205 for ABI in x86_64 x86 arm64-v8a
212 do 206 do
213 NAL=`echo $la | cut -d ';' -f 1`
214 ABI=`echo $la | cut -d ';' -f 2`
215 echo "" 207 echo ""
216 echo "##### Date: `date`, Native API level: $NAL, ABI: $ABI" 208 echo "##### Date: `date`, Native API level: $ANDROID_API_LEVEL, ABI: $ABI"
217 209
218 ( 210 (
219 build_dir=build-$NAL_$ABI 211 build_dir=build-${ANDROID_API_LEVEL}_${ABI}
220 rm -fr $build_dir 212 rm -fr $build_dir
221 mkdir $build_dir 213 mkdir $build_dir
222 cd $build_dir 214 cd $build_dir
223 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 .." 215 echo "##### cmake -GNinja -DCMAKE_MAKE_PROGRAM=ninja -DANDROID_NDK=$ANDROID_NDK_HOME -DCMAKE_TOOLCHAIN_FILE=$TC_FILE -DANDROID_ABI=$ABI -DANDROID_PLATFORM=$ANDROID_PLATFORM .."
224 cmake -GNinja -DCMAKE_MAKE_PROGRAM=ninja \ 216 cmake -GNinja -DCMAKE_MAKE_PROGRAM=ninja \
225 -DANDROID_NDK=$ANDROID_NDK_HOME \ 217 -DANDROID_NDK=$ANDROID_NDK_HOME \
226 -DCMAKE_TOOLCHAIN_FILE=$TC_FILE \ 218 -DCMAKE_TOOLCHAIN_FILE=$TC_FILE \
227 -DANDROID_ABI=$ABI -DANDROID_NATIVE_API_LEVEL=$NAL \ 219 -DANDROID_ABI=$ABI -DANDROID_PLATFORM=$ANDROID_PLATFORM \
228 -DENABLE_ASM=${ENABLE_ASM} .. 220 -DENABLE_ASM=${ENABLE_ASM} ..
229 221
230 ninja -j 4 222 ninja -j 4