@@ -155,15 +155,19 @@ jobs:
155
155
- arch : " x86_64"
156
156
abi : " x86_64"
157
157
target : " x86_64-linux-android"
158
+ task : " cargoBuildX86_64"
158
159
- arch : " i686"
159
160
abi : " x86"
160
161
target : " i686-linux-android"
162
+ task : " cargoBuildX86"
161
163
- arch : " aarch64"
162
164
abi : " arm64-v8a"
163
165
target : " aarch64-linux-android"
166
+ task : " cargoBuildArm64"
164
167
- arch : " armv7"
165
168
abi : " armeabi-v7a"
166
169
target : " armv7-linux-androideabi"
170
+ task : " cargoBuildArm"
167
171
steps :
168
172
# Fix for HOME path overridden by GH runners when building in containers, see:
169
173
# https://github.com/actions/runner/issues/863
@@ -197,27 +201,28 @@ jobs:
197
201
env :
198
202
cache_hash : ${{ steps.native-lib-cache-hash.outputs.native_lib_hash }}
199
203
with :
200
- path : ./android/app/build/extraJni
204
+ path : ./android/app/build/rustJniLibs/android
201
205
key : android-native-libs-${{ runner.os }}-${{ matrix.abi }}-${{ env.cache_hash }}
202
206
203
207
- name : Build native libraries
204
208
if : steps.cache-native-libs.outputs.cache-hit != 'true'
205
- env :
206
- RUSTFLAGS : --deny warnings
207
- BUILD_TYPE : debug
208
- run : |
209
- ARCHITECTURES="${{ matrix.abi }}"
210
- UNSTRIPPED_LIB_PATH="$CARGO_TARGET_DIR/${{ matrix.target }}/$BUILD_TYPE/libmullvad_jni.so"
211
- STRIPPED_LIB_PATH="./android/app/build/extraJni/${{ matrix.abi }}/libmullvad_jni.so"
212
- NDK_TOOLCHAIN_STRIP_TOOL="$NDK_TOOLCHAIN_DIR/llvm-strip"
213
- cargo build --target ${{ matrix.target }} --verbose --package mullvad-jni --features api-override
214
- $NDK_TOOLCHAIN_STRIP_TOOL --strip-debug --strip-unneeded -o "$STRIPPED_LIB_PATH" "$UNSTRIPPED_LIB_PATH"
209
+ uses : burrunan/gradle-cache-action@v1
210
+ with :
211
+ job-id : jdk17
212
+ arguments : ${{ matrix.task }}
213
+ gradle-version : wrapper
214
+ build-root-directory : android
215
+ execution-only-caches : false
216
+ # Disable if logs are hard to follow.
217
+ concurrent : true
218
+ read-only : ${{ github.ref != 'refs/heads/main' }}
219
+
215
220
216
221
- name : Upload native libs
217
222
uses : actions/upload-artifact@v4
218
223
with :
219
224
name : native-libs-${{ matrix.arch }}
220
- path : android/app/build/extraJni
225
+ path : android/app/build/rustJniLibs/android
221
226
if-no-files-found : error
222
227
retention-days : 7
223
228
@@ -290,7 +295,9 @@ jobs:
290
295
uses : burrunan/gradle-cache-action@v1
291
296
with :
292
297
job-id : jdk17
293
- arguments : compileOssProdDebugKotlin
298
+ arguments : |
299
+ compileOssProdDebugKotlin
300
+ -x cargoBuild
294
301
gradle-version : wrapper
295
302
build-root-directory : android
296
303
execution-only-caches : false
@@ -316,7 +323,7 @@ jobs:
316
323
- uses : actions/download-artifact@v4
317
324
with :
318
325
pattern : native-libs-*
319
- path : android/app/build/extraJni
326
+ path : android/app/build/rustJniLibs/android
320
327
merge-multiple : true
321
328
322
329
- uses : actions/download-artifact@v4
@@ -328,7 +335,9 @@ jobs:
328
335
uses : burrunan/gradle-cache-action@v1
329
336
with :
330
337
job-id : jdk17
331
- arguments : assembleOssProdDebug
338
+ arguments : |
339
+ assembleOssProdDebug
340
+ -x cargoBuild
332
341
gradle-version : wrapper
333
342
build-root-directory : android
334
343
execution-only-caches : true
@@ -341,7 +350,9 @@ jobs:
341
350
if : github.event.inputs.run_firebase_tests == 'true'
342
351
with :
343
352
job-id : jdk17
344
- arguments : assemblePlayStagemoleDebug
353
+ arguments : |
354
+ assemblePlayStagemoleDebug
355
+ -x cargoBuild
345
356
gradle-version : wrapper
346
357
build-root-directory : android
347
358
execution-only-caches : true
@@ -396,7 +407,10 @@ jobs:
396
407
uses : burrunan/gradle-cache-action@v1
397
408
with :
398
409
job-id : jdk17
399
- arguments : ${{ matrix.assemble-command }}
410
+ arguments : |
411
+ ${{ matrix.assemble-command }}
412
+ -x cargoBuild
413
+ -x generateRelayList
400
414
gradle-version : wrapper
401
415
build-root-directory : android
402
416
execution-only-caches : false
0 commit comments