name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

env:
  FLUTTER_VERSION: "3.13.1"

jobs:
  format:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - uses: subosito/flutter-action@v2
        with:
          flutter-version: ${{ env.FLUTTER_VERSION }}
          channel: "stable"
      - name: Dependencies
        run: flutter pub get
      - name: Check format
        run: dart format --line-length 150 --set-exit-if-changed lib test

  test:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - uses: subosito/flutter-action@v2
        with:
          flutter-version: ${{ env.FLUTTER_VERSION }}
          channel: "stable"
      - name: Dependencies
        run: flutter pub get
      - name: Build generated files
        run: flutter pub run build_runner build -d
      - name: Analyze
        run: flutter analyze
      - name: Test
        run: flutter test
