name: Master Branch CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
  workflow_dispatch:
  schedule:
    - cron: '0 0 * * *' # Every day at midnight

defaults:
  run:
    shell: bash

jobs:
  flutter-tests:
    name: Test Flutter ${{ matrix.flutter_version }} on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        flutter_version: [dev, beta, stable]
        os: [ubuntu-latest, macos-latest, windows-latest]
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-java@v1
        with:
          java-version: '12.x'
      - uses: subosito/flutter-action@v1
        with:
          channel: ${{ matrix.flutter_version }}
      - run: ./tool/flutter_ci_script_${{ matrix.flutter_version }}.sh
  android-build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-java@v1
        with:
          java-version: '12.x'
      - uses: subosito/flutter-action@v1
        with:
          channel: stable
      - run: ./tool/android_ci_script.sh
  ios-build:
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-java@v1
        with:
          java-version: '12.x'
      - uses: subosito/flutter-action@v1
        with:
          channel: stable
      - run: ./tool/ios_ci_script.sh