Skip to content

ci: build Android on macOS #4

ci: build Android on macOS

ci: build Android on macOS #4

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