diff options
| author | Kenjiro Nakayama <nakayamakenjiro@gmail.com> | 2026-09-07 15:46:08 +0900 |
|---|---|---|
| committer | Kenjiro Nakayama <nakayamakenjiro@gmail.com> | 2026-09-07 15:52:28 +0900 |
| commit | 714db175bf3e01f89aeb9eda5ea8d853ebca50f7 (patch) | |
| tree | a7d23b877cd1f97601e8ae22d6b6a3c5b3ec803c /scripts/test | |
| parent | d63a1f105815c3fe4ffd954443541bff5259cedf (diff) | |
| download | portable-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-x | scripts/test | 34 |
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 | |||
| 193 | elif [ "$ARCH" = "android" ]; then | 193 | elif [ "$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 |
