| name: Android Release Artifacts |
| |
| on: |
| workflow_dispatch: |
| inputs: |
| version: |
| description: Version name to be uploaded for AAR release |
| required: false |
| type: string |
| |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.ref }} |
| cancel-in-progress: true |
| |
| jobs: |
| check-if-aar-exists: |
| name: check-if-aar-exists |
| runs-on: ubuntu-22.04 |
| timeout-minutes: 10 |
| steps: |
| - name: Check if this RC version is already in S3 |
| shell: bash |
| run: | |
| VERSION="${{ inputs.version }}" |
| if curl -I "https://ossci-android.s3.amazonaws.com/executorch/release/${VERSION}/executorch.aar" | grep "200 OK"; then |
| echo "AAR already exists at https://ossci-android.s3.amazonaws.com/executorch/release/${VERSION}/executorch.aar" |
| echo "Will skip build/upload" |
| exit 1 |
| fi |
| |
| build-aar: |
| name: build-aar |
| needs: check-if-aar-exists |
| uses: pytorch/test-infra/.github/workflows/linux_job.yml@main |
| with: |
| runner: linux.2xlarge |
| docker-image: executorch-ubuntu-22.04-clang12-android |
| submodules: 'true' |
| ref: ${{ github.sha }} |
| timeout: 90 |
| upload-artifact: android-apps |
| upload-artifact-to-s3: true |
| script: | |
| set -eux |
| |
| # The generic Linux job chooses to use base env, not the one setup by the image |
| CONDA_ENV=$(conda env list --json | jq -r ".envs | .[-1]") |
| conda activate "${CONDA_ENV}" |
| PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh buck2 |
| export ARTIFACTS_DIR_NAME=artifacts-to-be-uploaded |
| |
| # Build LLM Demo for Android |
| bash build/build_android_llm_demo.sh ${ARTIFACTS_DIR_NAME} |
| |
| shasum -a 256 "${ARTIFACTS_DIR_NAME}/llm_demo/executorch.aar" |
| |
| upload-release-aar: |
| name: upload-release-aar |
| needs: build-aar |
| runs-on: ubuntu-22.04 |
| timeout-minutes: 10 |
| permissions: |
| id-token: write |
| contents: read |
| steps: |
| - name: configure aws credentials |
| uses: aws-actions/configure-aws-credentials@v1.7.0 |
| with: |
| role-to-assume: arn:aws:iam::308535385114:role/gha_executorch_upload-frameworks-android |
| aws-region: us-east-1 |
| - name: Upload AAR RC to AWS S3 |
| shell: bash |
| run: | |
| wget https://gha-artifacts.s3.amazonaws.com/${{ github.repository }}/${{ github.run_id }}/artifacts/llm_demo/executorch.aar |
| shasum -a 256 executorch.aar > executorch.aar.sha256sums |
| |
| pip install awscli==1.32.18 |
| AWS_CMD="aws s3 cp" |
| VERSION="${{ inputs.version }}" |
| VERSION_NAME="${VERSION:-temp_snapshot}" |
| ${AWS_CMD} executorch.aar s3://ossci-android/executorch/release/${VERSION_NAME}/executorch.aar --acl public-read |
| ${AWS_CMD} executorch.aar.sha256sums s3://ossci-android/executorch/release/${VERSION_NAME}/executorch.aar.sha256sums --acl public-read |