name: Static Code Analysis
on:
  workflow_dispatch:
  pull_request:
  push:
    branches: [main]

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  mobile-dart-analyze:
    name: Run Dart Code Analysis

    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup Flutter SDK
        uses: subosito/flutter-action@v2
        with:
          channel: "stable"
          flutter-version: "3.19.3"

      - name: Install dependencies
        run: dart pub get
        working-directory: ./mobile

      - name: Run dart analyze
        run: dart analyze --fatal-infos
        working-directory: ./mobile

      - name: Run dart format
        run: dart format lib/ --set-exit-if-changed
        working-directory: ./mobile

      # Enable after riverpod generator migration is completed
      # - name: Run dart custom lint
      #   run: dart run custom_lint
      #   working-directory: ./mobile