name: Dart CI

on:
  # Run on PRs and pushes to the default branch.
  push:
    branches: [ master, stable]
  pull_request:
    branches: [ master, stable]
  schedule:
    - cron: "0 0 * * 0"

env:
  PUB_ENVIRONMENT: bot.github

jobs:
  # Check code formatting and static analysis on a single OS (macos).
  analyze:
    runs-on: macos-latest
    strategy:
      fail-fast: false
      matrix:
        sdk: [stable]
    steps:
      - uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
      - uses: dart-lang/setup-dart@6a218f2413a3e78e9087f638a238f6b40893203d
        with:
          sdk: ${{ matrix.sdk }}
      - id: install
        name: Install dependencies
        run: dart pub get && dart pub get --directory="example/shared_bindings"
      - name: Check formatting
        run: dart format --output=none --set-exit-if-changed .
        if: always() && steps.install.outcome == 'success'
      - name: Build test dylib and bindings
        run: dart test/setup.dart
      - name: Analyze code
        run: dart analyze --fatal-infos
        if: always() && steps.install.outcome == 'success'

  test-linux:
    needs: analyze
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
      - uses: dart-lang/setup-dart@6a218f2413a3e78e9087f638a238f6b40893203d
        with:
          sdk: stable
      - name: Install dependencies
        run: dart pub get
      - name: Install libclang-14-dev
        run: sudo apt-get install libclang-14-dev
      - name: Build test dylib and bindings
        run: dart test/setup.dart
      - name: Run VM tests
        run: dart test --platform vm

  test-mac:
    needs: analyze
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
      - uses: dart-lang/setup-dart@6a218f2413a3e78e9087f638a238f6b40893203d
        with:
          sdk: stable
      - name: Install dependencies
        run: dart pub get
      - name: Build test dylib and bindings
        run: dart test/setup.dart
      - name: Run VM tests
        run: dart test --platform vm
      - name: Collect coverage
        run: ./tool/coverage.sh
      - name: Upload coverage
        uses: coverallsapp/github-action@9ba913c152ae4be1327bfb9085dc806cedb44057
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          path-to-lcov: lcov.info

  test-windows:
    needs: analyze
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
      - uses: dart-lang/setup-dart@6a218f2413a3e78e9087f638a238f6b40893203d
        with:
          sdk: stable
      - name: Install dependencies
        run: dart pub get
      - name: Build test dylib and bindings
        run: dart test/setup.dart
      - name: Run VM tests
        run: dart test --platform vm

  # Sanity check the latest `flutter create --template plugin_ffi`.
  # This will break if we change the Flutter template or the generated code.
  # But, getting libclang on the LUCI infrastructure has proven to be
  # non-trivial. See discussion on
  # https://github.com/flutter/flutter/issues/105513.
  # If we need to change the generated code, we should temporarily disable this
  # test, or temporarily disable the requirement for all bots to be green to
  # merge PRs.
  # Running this sanity check on one OS should be sufficient. Chosing Windows
  # because it is the most likely to break.
  test-windows-flutter:
    needs: analyze
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
      - uses: subosito/flutter-action@dbf1fa04f4d2e52c33185153d06cdb5443aa189d
        with:
          channel: 'master'
      - name: Install dependencies
        run: flutter pub get
      - name: Build test dylib and bindings
        run: dart test/setup.dart
      - name: Run VM tests
        run: flutter pub run test test_flutter/ --platform vm
