diff --git a/.github/workflows/_android.yml b/.github/workflows/_android.yml index 7061eb72aa3..b19a7bfdc97 100644 --- a/.github/workflows/_android.yml +++ b/.github/workflows/_android.yml @@ -29,8 +29,22 @@ jobs: export ARTIFACTS_DIR_NAME=artifacts-to-be-uploaded # Build LLM Demo for Android + export BUILD_AAR_DIR=aar-out bash build/build_android_library.sh ${ARTIFACTS_DIR_NAME} - bash build/build_android_instrumentation.sh + bash build/build_android_instrumentation.sh ${ARTIFACTS_DIR_NAME} + + mkdir -p examples/demo-apps/android/LlamaDemo/app/libs + cp aar-out/executorch.aar examples/demo-apps/android/LlamaDemo/app/libs + pushd examples/demo-apps/android/LlamaDemo + ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest + popd + + DEMO_APP_DIR="${ARTIFACTS_DIR_NAME}/llm_demo" + # The app directory is named using its build flavor as a suffix. + mkdir -p "${DEMO_APP_DIR}" + # Collect the app and its test suite + cp examples/demo-apps/android/LlamaDemo/app/build/outputs/apk/debug/*.apk "${DEMO_APP_DIR}" + cp examples/demo-apps/android/LlamaDemo/app/build/outputs/apk/androidTest/debug/*.apk "${DEMO_APP_DIR}" # Running Android emulator directly on the runner and not using Docker run-emulator: diff --git a/.github/workflows/android-perf.yml b/.github/workflows/android-perf.yml index fbd2cae24e0..e775d7316e6 100644 --- a/.github/workflows/android-perf.yml +++ b/.github/workflows/android-perf.yml @@ -362,8 +362,17 @@ jobs: PYTHON_EXECUTABLE=python bash .ci/scripts/setup-qnn-deps.sh PYTHON_EXECUTABLE=python bash .ci/scripts/build-qnn-sdk.sh - export ANDROID_ABIS="arm64-v8a" - PYTHON_EXECUTABLE=python EXECUTORCH_BUILD_QNN=ON QNN_SDK_ROOT=/tmp/qnn/2.28.0.241029 bash build/build_android_library.sh ${ARTIFACTS_DIR_NAME} + mkdir -p aar-out + PYTHON_EXECUTABLE=python ANDROID_ABIS="arm64-v8a" BUILD_AAR_DIR=aar-out EXECUTORCH_BUILD_QNN=ON QNN_SDK_ROOT=/tmp/qnn/2.28.0.241029 bash build/build_android_library.sh + mkdir -p extension/benchmark/android/benchmark/app/libs + cp aar-out/executorch.aar extension/benchmark/android/benchmark/app/libs + pushd extension/benchmark/android/benchmark + ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest + popd + MINIBENCH_APP_DIR="${ARTIFACTS_DIR_NAME}/minibench" + mkdir -p "${MINIBENCH_APP_DIR}" + cp extension/benchmark/android/benchmark/app/build/outputs/apk/debug/*.apk "${MINIBENCH_APP_DIR}" + cp extension/benchmark/android/benchmark/app/build/outputs/apk/androidTest/debug/*.apk "${MINIBENCH_APP_DIR}" # Let's see how expensive this job is, we might want to tone it down by running it periodically benchmark-on-device: diff --git a/.github/workflows/android-release-artifacts.yml b/.github/workflows/android-release-artifacts.yml index 26423e59233..8809c77962a 100644 --- a/.github/workflows/android-release-artifacts.yml +++ b/.github/workflows/android-release-artifacts.yml @@ -52,8 +52,12 @@ jobs: PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh --build-tool buck2 export ARTIFACTS_DIR_NAME=artifacts-to-be-uploaded - # Build LLM Demo for Android - bash build/build_android_library.sh ${ARTIFACTS_DIR_NAME} + # Build AAR Package + mkdir aar-out + export BUILD_AAR_DIR=aar-out + bash build/build_android_library.sh + mkdir -p "${ARTIFACTS_DIR_NAME}/llm_demo" + cp aar-out/executorch.aar "${ARTIFACTS_DIR_NAME}/llm_demo/executorch.aar" shasum -a 256 "${ARTIFACTS_DIR_NAME}/llm_demo/executorch.aar" diff --git a/build/build_android_library.sh b/build/build_android_library.sh index 32b2210a54e..a01d24addd8 100644 --- a/build/build_android_library.sh +++ b/build/build_android_library.sh @@ -159,9 +159,8 @@ collect_artifacts_to_be_uploaded() { # Collect the app and its test suite cp examples/demo-apps/android/LlamaDemo/app/build/outputs/apk/debug/*.apk "${DEMO_APP_DIR}" cp examples/demo-apps/android/LlamaDemo/app/build/outputs/apk/androidTest/debug/*.apk "${DEMO_APP_DIR}" - # Collect JAR and AAR - cp extension/android/build/libs/executorch.jar "${DEMO_APP_DIR}" - find "${BUILD_AAR_DIR}/" -name 'executorch*.aar' -exec cp {} "${DEMO_APP_DIR}" \; + # Collect AAR + cp "${BUILD_AAR_DIR}/executorch.aar" "${DEMO_APP_DIR}" # Collect MiniBench APK MINIBENCH_APP_DIR="${ARTIFACTS_DIR_NAME}/minibench" mkdir -p "${MINIBENCH_APP_DIR}" @@ -186,10 +185,10 @@ main() { build_android_native_library ${ANDROID_ABI} done build_aar - build_android_demo_apps - if [ -n "$ARTIFACTS_DIR_NAME" ]; then - collect_artifacts_to_be_uploaded ${ARTIFACTS_DIR_NAME} - fi + # build_android_demo_apps + # if [ -n "$ARTIFACTS_DIR_NAME" ]; then + # collect_artifacts_to_be_uploaded ${ARTIFACTS_DIR_NAME} + # fi } if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then