ci: build Android on macOS #4
Workflow file for this run
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 Build & Test (macOS) | |
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| branches: [ master, submission-v* ] | |
| pull_request: | |
| types: [ opened, synchronize, reopened ] | |
| jobs: | |
| build: | |
| name: Build Android app | |
| # https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md | |
| runs-on: macos-15 | |
| timeout-minutes: 180 | |
| env: | |
| WITH_APPLE: 0 | |
| WITH_TFLITE: 1 | |
| WITH_PIXEL: 0 | |
| WITH_MEDIATEK: 0 | |
| WITH_QTI: 0 | |
| WITH_SAMSUNG: 0 | |
| FIREBASE_IOS_API_KEY: ${{ secrets.FIREBASE_IOS_API_KEY }} | |
| FIREBASE_IOS_APP_ID: ${{ secrets.FIREBASE_IOS_APP_ID }} | |
| FIREBASE_IOS_CLIENT_ID: ${{ secrets.FIREBASE_IOS_CLIENT_ID }} | |
| FIREBASE_IOS_REVERSED_CLIENT_ID: ${{ secrets.FIREBASE_IOS_REVERSED_CLIENT_ID }} | |
| FIREBASE_IOS_BUNDLE_ID: ${{ secrets.FIREBASE_IOS_BUNDLE_ID }} | |
| FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }} | |
| FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.FIREBASE_MESSAGING_SENDER_ID }} | |
| FIREBASE_DATABASE_URL: ${{ secrets.FIREBASE_DATABASE_URL }} | |
| FIREBASE_STORAGE_BUCKET: ${{ secrets.FIREBASE_STORAGE_BUCKET }} | |
| FIREBASE_CI_USER_EMAIL: ${{ secrets.FIREBASE_CI_USER_EMAIL }} | |
| FIREBASE_CI_USER_PASSWORD: ${{ secrets.FIREBASE_CI_USER_PASSWORD }} | |
| FIREBASE_CRASHLYTICS_ENABLED: false | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 | |
| - name: Cache bazel | |
| uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 | |
| with: | |
| path: /tmp/bazel_cache | |
| key: ${{ runner.os }}-bazel_cache-${{ hashFiles('**/BUILD', '**/WORKSPACE') }} | |
| restore-keys: ${{ runner.os }}-bazel_cache- | |
| - name: Install dependencies | |
| run: | | |
| brew update --quiet || true | |
| brew install bazelisk | |
| brew install protobuf | |
| brew install cocoapods | |
| brew install [email protected] | |
| brew link --overwrite [email protected] | |
| python3.14 -m pip install --break-system-packages "numpy>=1.23,<2.0" "absl-py>=1.3,<2.0" | |
| - name: Install Flutter | |
| uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0 | |
| with: | |
| channel: stable | |
| flutter-version: 3.19.6 | |
| - name: Install protoc | |
| run: | | |
| flutter config --no-analytics && dart --disable-analytics | |
| dart pub global activate protoc_plugin ^21.1.2 | |
| - name: Install Android NDK | |
| uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0 | |
| with: | |
| ndk-version: r25c # v25.2.9519653 | |
| add-to-path: true | |
| link-to-sdk: true | |
| - name: Prepare Flutter | |
| run: | | |
| make flutter/prepare | |
| - name: Build Android app | |
| env: | |
| BAZEL_OUTPUT_ROOT_ARG: "--output_user_root=/tmp/bazel_output" | |
| BAZEL_CACHE_ARG: "--disk_cache=/tmp/bazel_cache" | |
| run: | | |
| make flutter/android | |
| - name: Run unit tests | |
| run: | | |
| make flutter/test/unit |