Skip to content

mobile: show active waypoint distance + ETA (and fix route sensor keys) #55

mobile: show active waypoint distance + ETA (and fix route sensor keys)

mobile: show active waypoint distance + ETA (and fix route sensor keys) #55

name: Mobile (Flutter) CI
# Compiler-verifies the Flutter app in mobile/. analyze + build are the gates
# (they surface beta viam_sdk symbol drift and dependency-resolution issues);
# formatting is advisory so hand-formatting doesn't block the build.
on:
push:
branches: ["main", "claude/**"]
paths:
- "mobile/**"
- ".github/workflows/mobile-flutter.yml"
pull_request:
paths:
- "mobile/**"
- ".github/workflows/mobile-flutter.yml"
workflow_dispatch:
defaults:
run:
working-directory: mobile
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
flutter-version-file: mobile/.fvmrc
cache: true
- run: flutter --version
# Materialize the gitignored platform folders (android/ ios/ …) so the
# project is buildable; leaves lib/ and pubspec.yaml untouched.
- name: Materialize platform folders
run: flutter create .
- name: Resolve dependencies
run: flutter pub get
- name: Format check (advisory)
continue-on-error: true
run: dart format --output=none --set-exit-if-changed .
- name: Analyze
run: flutter analyze
- name: Unit tests (if any)
run: if [ -d test ]; then flutter test; else echo "no test/ dir, skipping"; fi
build-android:
runs-on: ubuntu-latest
needs: analyze
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
- uses: subosito/flutter-action@v2
with:
flutter-version-file: mobile/.fvmrc
cache: true
- name: Materialize platform folders
run: flutter create .
# flutter_appauth's Android manifest declares a redirect activity that
# requires the appAuthRedirectScheme manifest placeholder; without it the
# manifest merge fails. The platform folder is regenerated each run, so
# inject it here (idempotent; handles Groovy and Kotlin DSL).
- name: Configure AppAuth redirect scheme
run: bash tool/ci-android-appauth.sh
- name: Resolve dependencies
run: flutter pub get
# Debug APK: no signing config or secrets needed. OAuth/boat dart-defines
# are optional (the app builds without them and runs chart-only), so CI
# exercises the full compile without credentials.
- name: Build debug APK
run: flutter build apk --debug