name: Main Branch CI

# Declare default permissions as read only.
permissions: read-all

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  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 }}
    if: github.repository == 'flutter/samples'
    strategy:
      fail-fast: false
      matrix:
        flutter_version: [stable, beta, master]
        os: [ubuntu-latest, macos-latest, windows-latest]
    steps:
      - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
      - uses: actions/setup-java@1df8dbefe2a8cbc99770194893dd902763bee34b
        with:
          distribution: 'zulu'
          java-version: '12.x'
      - uses: subosito/flutter-action@dbf1fa04f4d2e52c33185153d06cdb5443aa189d
        with:
          channel: ${{ matrix.flutter_version }}
      - run: ./tool/flutter_ci_script_${{ matrix.flutter_version }}.sh
  android-build:
    runs-on: ubuntu-latest
    if: github.repository == 'flutter/samples'
    steps:
      - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
      - uses: actions/setup-java@1df8dbefe2a8cbc99770194893dd902763bee34b
        with:
          distribution: 'zulu'
          java-version: '12.x'
      - uses: subosito/flutter-action@dbf1fa04f4d2e52c33185153d06cdb5443aa189d
        with:
          channel: stable
      - run: ./tool/android_ci_script.sh
  ios-build:
    runs-on: macos-latest
    if: github.repository == 'flutter/samples'
    steps:
      - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
      - uses: actions/setup-java@1df8dbefe2a8cbc99770194893dd902763bee34b
        with:
          distribution: 'zulu'
          java-version: '12.x'
      - uses: subosito/flutter-action@dbf1fa04f4d2e52c33185153d06cdb5443aa189d
        with:
          channel: stable
      - run: ./tool/ios_ci_script.sh