22
33on :
44 push :
5- # branches: [main]
65 pull_request :
6+ schedule :
7+ - cron : ' 0 0 * * *'
78 workflow_dispatch :
89 inputs :
910 swift_versions :
@@ -25,12 +26,10 @@ jobs:
2526 fail-fast : false
2627 matrix :
2728 swift_version : ${{ fromJSON(inputs.swift_versions || '["6.3", "nightly-main"]') }}
28- sdk_triple : ['aarch64-unknown-linux-android28']
29- ndk_version : ['r27d']
29+ ndk_version : ['r27d', 'r30-beta1']
3030 os : ['ubuntu-latest', 'macos-latest']
3131 runs-on : ${{ matrix.os }}
3232 env :
33- SDK_TRIPLE : ${{ matrix.sdk_triple }}
3433 NDK_VERSION : ${{ matrix.ndk_version }}
3534 SWIFT_VERSION : ${{ matrix.swift_version }}
3635 steps :
@@ -75,14 +74,24 @@ jobs:
7574 exit 1
7675 fi
7776
77+ - name : Cache Android NDK
78+ id : cache-ndk
79+ uses : actions/cache@v4
80+ with :
81+ path : ~/android-ndk-${{ matrix.ndk_version }}
82+ key : android-ndk-${{ runner.os }}-${{ runner.arch }}-${{ matrix.ndk_version }}
83+
7884 - name : Install Android NDK
85+ if : steps.cache-ndk.outputs.cache-hit != 'true'
7986 run : |
8087 set -euxo pipefail
8188 OS="$(uname -s | tr '[A-Z]' '[a-z]')"
8289 curl -L -o ndk.zip --retry 3 "https://dl.google.com/android/repository/android-ndk-${NDK_VERSION}-${OS}.zip"
8390 unzip -q ndk.zip -d "$HOME"
8491 rm ndk.zip
85- echo "ANDROID_NDK_HOME=$HOME/android-ndk-${NDK_VERSION}" >> "$GITHUB_ENV"
92+
93+ - name : Set ANDROID_NDK_HOME
94+ run : echo "ANDROID_NDK_HOME=$HOME/android-ndk-${NDK_VERSION}" >> "$GITHUB_ENV"
8695
8796 - name : Install Android Swift SDK and matching host toolchain
8897 # Looks up the Android Swift SDK URL and checksum from the swift.org
@@ -182,34 +191,34 @@ jobs:
182191 :SwiftKitCore:publishToMavenLocal
183192
184193 - name : Build hello-swift-raw-jni APK
185- run : ./gradlew :hello-swift-raw-jni:assembleDebug --stacktrace
194+ run : ./gradlew :hello-swift-raw-jni:assembleRelease --stacktrace
186195
187196 - name : Build hello-swift-raw-jni-callback APK
188- run : ./gradlew :hello-swift-raw-jni-callback:assembleDebug --stacktrace
197+ run : ./gradlew :hello-swift-raw-jni-callback:assembleRelease --stacktrace
189198
190199 - name : Build hello-swift-raw-jni-library
191- run : ./gradlew :hello-swift-raw-jni-library:assembleDebug --stacktrace
200+ run : ./gradlew :hello-swift-raw-jni-library:assembleRelease --stacktrace
192201
193202 - name : Build native-activity APK
194- run : ./gradlew :native-activity:assembleDebug --stacktrace
203+ run : ./gradlew :native-activity:assembleRelease --stacktrace
195204
196205 - name : Build hello-swift-java APK
197- run : ./gradlew :hello-swift-java-hashing-app:assembleDebug --stacktrace
206+ run : ./gradlew :hello-swift-java-hashing-app:assembleRelease --stacktrace
198207
199208 - name : Build swift-java-weather-app APK
200- run : ./gradlew :swift-java-weather-app-weather-app:assembleDebug --stacktrace
209+ run : ./gradlew :swift-java-weather-app-weather-app:assembleRelease --stacktrace
201210
202211 - name : Build hello-cpp-swift cpp-lib
203212 working-directory : hello-cpp-swift/cpp-lib
204213 run : ./build-android-static.sh
205214
206215 - name : Build hello-cpp-swift APK
207- run : ./gradlew :hello-cpp-swift:app:assembleDebug --stacktrace
216+ run : ./gradlew :hello-cpp-swift:app:assembleRelease --stacktrace
208217
209218 - name : Summarize APK artifacts
210219 if : always()
211220 run : |
212- echo "## APK Artifacts (${{ matrix.os }} / swift:${{ matrix.swift_version }} / ${{ matrix.sdk_triple }})" >> "$GITHUB_STEP_SUMMARY"
221+ echo "## APK Artifacts (os: ${{ matrix.os }} / swift:${{ matrix.swift_version }} / ndk: ${{ matrix.ndk_version }})" >> "$GITHUB_STEP_SUMMARY"
213222 echo "" >> "$GITHUB_STEP_SUMMARY"
214223 echo "| Project | APK | Size |" >> "$GITHUB_STEP_SUMMARY"
215224 echo "|---------|-----|------|" >> "$GITHUB_STEP_SUMMARY"
@@ -231,7 +240,7 @@ jobs:
231240 if : always()
232241 uses : actions/upload-artifact@v7
233242 with :
234- name : apks-${{ matrix.os }}-${{ matrix.swift_version }}-${{ matrix.sdk_triple }}-${{ matrix. ndk_version }}
243+ name : apks-${{ matrix.os }}-${{ matrix.swift_version }}-${{ matrix.ndk_version }}
235244 path : ' **/build/outputs/apk/**/*.apk'
236245 if-no-files-found : warn
237246
0 commit comments