mobile: import foundation for kIsWeb/defaultTargetPlatform #56
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: 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 |