diff --git a/.ci/docker/common/install_base.sh b/.ci/docker/common/install_base.sh index fec0e057ba1..cbca22cfa33 100755 --- a/.ci/docker/common/install_base.sh +++ b/.ci/docker/common/install_base.sh @@ -23,7 +23,8 @@ install_ubuntu() { unzip \ gdb \ rsync \ - libssl-dev + libssl-dev \ + zip # Cleanup package manager apt-get autoclean && apt-get clean diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 324440dd745..051c9b22a78 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -61,6 +61,9 @@ jobs: cp cmake-out-android-arm64-v8a/extension/android/*.so artifacts-to-be-uploaded/arm64-v8a/ cp cmake-out-android-x86_64/lib/*.a artifacts-to-be-uploaded/x86_64/ cp cmake-out-android-x86_64/extension/android/*.so artifacts-to-be-uploaded/x86_64/ + # Copyp AAR to S3 + cp build_aar/executorch.aar artifacts-to-be-uploaded/ + cp build_aar/executorch-llama.aar artifacts-to-be-uploaded/ # Upload the app and its test suite to S3 so that they can be downloaded by the test job upload-artifacts: diff --git a/build/test_android_ci.sh b/build/test_android_ci.sh index 8d9391146dc..b1f17730f5d 100755 --- a/build/test_android_ci.sh +++ b/build/test_android_ci.sh @@ -22,6 +22,7 @@ build_android_native_library() { pushd examples/demo-apps/android/LlamaDemo CMAKE_OUT="cmake-out-android-$1" ANDROID_NDK=/opt/ndk ANDROID_ABI="$1" ./gradlew setup popd + cp "cmake-out-android-$1"/extension/android/*.so build_aar/jni/$1/ } build_android_demo_app() { @@ -37,8 +38,25 @@ build_android_llama_demo_app() { popd } +build_aar() { + cp extension/android/build/libs/executorch.jar build_aar/libs + echo \ \ + \ \ + \ > build_aar/AndroidManifest.xml + pushd build_aar + zip -r executorch.aar libs jni AndroidManifest.xml + + rm jni/arm64-v8a/libexecutorch_jni.so jni/x86_64/libexecutorch_jni.so + zip -r executorch-llama.aar libs jni AndroidManifest.xml + popd +} + +mkdir -p build_aar/jni/arm64-v8a build_aar/jni/x86_64 build_aar/libs + build_android_native_library arm64-v8a build_android_native_library x86_64 export_model build_android_demo_app build_android_llama_demo_app +build_aar