# packaging pipeline for onnxruntime-extensions Android AAR package jobs: - job: AndroidPackaging pool: vmImage: "macOS-13" timeoutInMinutes: 120 variables: buildConfig: Release steps: - task: UsePythonVersion@0 inputs: disableDownloadFromRegistry: true versionSpec: "3.9" addToPath: true architecture: "x64" displayName: "Use Python 3.9" - task: JavaToolInstaller@0 displayName: Use jdk 11 inputs: versionSpec: "11" jdkArchitectureOption: "x64" jdkSourceOption: "PreInstalled" - script: brew install coreutils ninja displayName: Install coreutils and ninja - template: templates/install-appcenter.yml - script: | python ./tools/gen_selectedops.py ./tools/android/package_ops.config displayName: "Generate selected ops CMake file" - template: templates/run-with-android-emulator-steps.yml parameters: steps: - bash: | set -e -x python ./tools/android/build_aar.py \ --output-dir $(Build.BinariesDirectory)/android_aar \ --config $(buildConfig) \ --cmake_extra_defines OCOS_ENABLE_SELECTED_OPLIST=ON VERSION=$(cat ./version.txt) AAR_PATH="$(Build.BinariesDirectory)/android_aar/aar_out/$(buildConfig)/com/microsoft/onnxruntime/onnxruntime-extensions-android/${VERSION}/onnxruntime-extensions-android-${VERSION}.aar" # Do not output ##vso[] commands with `set -x` or they may be parsed again and include a trailing quote. set +x echo "##vso[task.setvariable variable=ORT_EXTENSIONS_AAR_PATH]${AAR_PATH}" displayName: Build onnxruntime-extensions AAR package - bash: | set -e -x cp -r $(Build.SourcesDirectory)/java/src/test/android $(Build.BinariesDirectory)/android_test cd $(Build.BinariesDirectory)/android_test ./gradlew connectedDebugAndroidTest --no-daemon -DortExtensionsAarLocalPath="${ORT_EXTENSIONS_AAR_PATH}" displayName: Build and run onnxruntime-extensions Android test with Android Emulator - script: | set -e -x appcenter test run espresso \ --app "AI-Frameworks/Ort-Ext-Mobile-Android-Testapp" \ --devices $(app_center_android_test_devices) \ --app-path $(Build.BinariesDirectory)/android_test/app/build/outputs/apk/debug/app-debug.apk \ --test-series "master" \ --locale "en_US" \ --build-dir $(Build.BinariesDirectory)/android_test/app/build/outputs/apk/androidTest/debug \ --token $(app_center_api_token) displayName: Run onnxruntime-extensions Android test using App Center - bash: | set -e -x AAR_DIR=$(dirname "${ORT_EXTENSIONS_AAR_PATH}") ARTIFACTS_STAGING_DIR="$(Build.ArtifactStagingDirectory)" cp ${ORT_EXTENSIONS_AAR_PATH} ${ARTIFACTS_STAGING_DIR} cp ${AAR_DIR}/*-javadoc.jar ${ARTIFACTS_STAGING_DIR} cp ${AAR_DIR}/*-sources.jar ${ARTIFACTS_STAGING_DIR} cp ${AAR_DIR}/*.pom ${ARTIFACTS_STAGING_DIR} displayName: "Assemble artifacts" - publish: "$(Build.ArtifactStagingDirectory)" artifact: onnxruntime-extensions-android-aar displayName: "Publish artifacts"