name: build

on: [push, pull_request]

jobs:
  build_ios:
    name: Build iOS on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [macos-latest]
    steps:
      - uses: actions/checkout@v3
      - uses: subosito/flutter-action@v2
        with:
          channel: 'stable'
      - name: Run llvm/clang-format@shell
        run: |
          brew install clang-format
      - run: clang-format -style=file -i ios/Classes/*.h ios/Classes/*.m --dry-run --Werror
      - run: flutter --version
      - run: flutter pub get
      - run: dart format --set-exit-if-changed .
      - run: flutter pub publish --dry-run
      - run: flutter analyze lib example/lib
      - run: cd example; flutter build ios --no-codesign

  build_android:
    name: Build Android on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [windows-latest, ubuntu-latest, macos-latest]
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-java@v2
        with:
          distribution: 'zulu'
          java-version: '11'
      - uses: subosito/flutter-action@v2
        with:
          channel: 'stable'
      - run: flutter --version
      - run: flutter pub get
      - run: dart format --set-exit-if-changed .
      - run: flutter pub publish --dry-run
      - run: flutter analyze lib example/lib
      - run: cd example; flutter build apk --debug
