Create android-build1.yml #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "Android x64 Build" | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - AE | |
| - rel-* | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| env: | |
| ORT_NIGHTLY_REST_API: "https://feeds.dev.azure.com/aiinfra/PublicPackages/_apis/packaging/Feeds/ORT-Nightly/packages?packageNameQuery=Microsoft.ML.OnnxRuntime&api-version=6.0-preview.1" | |
| ORT_PACKAGE_NAME: "Microsoft.ML.OnnxRuntime" | |
| ORT_NIGHTLY_SOURCE: "https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT-Nightly/nuget/v3/index.json" | |
| ANDROID_ABI: "x86_64" | |
| jobs: | |
| android_x64: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout OnnxRuntime GenAI repo | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Java 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| cache: 'gradle' | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v3 | |
| with: | |
| gradle-version: '8.6' | |
| - name: Install jq | |
| run: | | |
| sudo apt-get install jq | |
| - uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '8.0.x' | |
| - name: Get the Latest OnnxRuntime Nightly Version | |
| run: | | |
| ORT_NIGHTLY_VERSION=$(curl -s "${{ env.ORT_NIGHTLY_REST_API }}" | jq -r '.value[0].versions[0].normalizedVersion') | |
| echo "$ORT_NIGHTLY_VERSION" | |
| echo "ORT_NIGHTLY_VERSION=$ORT_NIGHTLY_VERSION" >> $GITHUB_ENV | |
| - name: Download OnnxRuntime Nightly | |
| run: | | |
| dotnet new console | |
| dotnet add package ${{ env.ORT_PACKAGE_NAME }} --version ${{ env.ORT_NIGHTLY_VERSION }} --source ${{ env.ORT_NIGHTLY_SOURCE }} --package-directory . | |
| - name: Extract ONNX Runtime AAR | |
| run: | | |
| set -e -x | |
| unzip microsoft.ml.onnxruntime/${{ env.ORT_NIGHTLY_VERSION }}/runtimes/android/native/onnxruntime.aar -d ort | |
| ls -lR ort | |
| - name: Install Android SDK and Emulator | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y unzip wget | |
| wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip -P $HOME | |
| unzip $HOME/commandlinetools-linux-7583922_latest.zip -d $HOME/Android | |
| yes | $HOME/Android/cmdline-tools/bin/sdkmanager --sdk_root=$HOME/Android --install "platform-tools" "emulator" "system-images;android-27;default;x86_64" | |
| - name: Set Android SDK path | |
| run: | | |
| echo "ANDROID_HOME=$HOME/Android" >> $GITHUB_ENV | |
| echo "ANDROID_SDK_ROOT=$HOME/Android" >> $GITHUB_ENV | |
| echo "PATH=$PATH:$HOME/Android/platform-tools:$HOME/Android/emulator" >> $GITHUB_ENV | |
| - name: Verify Android Emulator installation | |
| run: | | |
| ls -l $HOME/Android/emulator | |
| - name: Start Android Emulator | |
| run: | | |
| $ANDROID_HOME/emulator/emulator -avd test_avd -no-window -no-audio -gpu off & | |
| adb wait-for-device | |
| - name: Create Android build | |
| run: | | |
| ./build.sh --android --android_api=27 --android_ndk_path=${ANDROID_NDK_LATEST_HOME} --config=RelWithDebInfo --android_abi=${{ env.ANDROID_ABI }} --parallel --build_java --update | |
| - name: Run Android build | |
| run: | | |
| ./build.sh --android --android_api=27 --android_ndk_path=${ANDROID_NDK_LATEST_HOME} --config=RelWithDebInfo --android_abi=${{ env.ANDROID_ABI }} --parallel --build_java --build | |
| - name: Run Android tests | |
| run: | | |
| ./build.sh --android --android_api=27 --android_ndk_path=${ANDROID_NDK_LATEST_HOME} --config=RelWithDebInfo --android_abi=${{ env.ANDROID_ABI }} --parallel --build_java --android_run_emulator --test |