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@b4ffde65f46336ab88eb53be808477a3936bae11
      - uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
        with:
          distribution: 'zulu'
          java-version: '17'
      - uses: subosito/flutter-action@2783a3f08e1baf891508463f8c6653c258246225
        with:
          channel: ${{ matrix.flutter_version }}
      - run: ./tool/flutter_ci_script_${{ matrix.flutter_version }}.sh
  web-samples-index:
    name: web/samples_index config check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
      - uses: subosito/flutter-action@2783a3f08e1baf891508463f8c6653c258246225
      - run: |
          dart pub get
          dart run grinder generate
        working-directory: web/samples_index
  android-build:
    runs-on: ubuntu-latest
    if: github.repository == 'flutter/samples'
    steps:
      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
      - uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
        with:
          distribution: 'zulu'
          java-version: '17'
      - uses: subosito/flutter-action@2783a3f08e1baf891508463f8c6653c258246225
        with:
          channel: stable
      - run: ./tool/android_ci_script.sh
  ios-build:
    runs-on: macos-latest
    if: github.repository == 'flutter/samples'
    steps:
      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
      - uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
        with:
          distribution: 'zulu'
          java-version: '17'
      - uses: subosito/flutter-action@2783a3f08e1baf891508463f8c6653c258246225
        with:
          channel: stable
      - run: ./tool/ios_ci_script.sh
