diff options
| -rw-r--r-- | .github/workflows/android.yml | 16 | ||||
| -rwxr-xr-x | scripts/test | 34 |
2 files changed, 20 insertions, 30 deletions
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index d9d3b36..bd02a3b 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml | |||
| @@ -17,12 +17,10 @@ jobs: | |||
| 17 | fail-fast: false | 17 | fail-fast: false |
| 18 | matrix: | 18 | matrix: |
| 19 | include: | 19 | include: |
| 20 | - name: "Android 8-9" | 20 | - name: "Minimum API 26" |
| 21 | min-nal: 26 | 21 | api-level: 26 |
| 22 | max-nal: 28 | 22 | - name: "Latest API" |
| 23 | - name: "Android 10-11" | 23 | api-level: latest |
| 24 | min-nal: 29 | ||
| 25 | max-nal: 30 | ||
| 26 | steps: | 24 | steps: |
| 27 | - name: "Checkout repository" | 25 | - name: "Checkout repository" |
| 28 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | 26 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| @@ -35,8 +33,8 @@ jobs: | |||
| 35 | sudo apt-get install -y cmake ninja-build | 33 | sudo apt-get install -y cmake ninja-build |
| 36 | 34 | ||
| 37 | - name: "Run CI script" | 35 | - name: "Run CI script" |
| 38 | run: ./scripts/test | 36 | run: | |
| 37 | ANDROID_NDK_HOME="$ANDROID_NDK_LATEST_HOME" ./scripts/test | ||
| 39 | env: | 38 | env: |
| 40 | ARCH: "android" | 39 | ARCH: "android" |
| 41 | MIN_NAL: "${{ matrix.min-nal }}" | 40 | ANDROID_API_LEVEL: "${{ matrix.api-level }}" |
| 42 | MAX_NAL: "${{ matrix.max-nal }}" | ||
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 |
