name: Dart CI

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

env:
  PUB_ENVIRONMENT: bot.github

jobs:
  # Check code formatting and static analysis on a single OS (linux)
  # against Dart dev.
  analyze:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        sdk: [dev]
    steps:
      - uses: actions/checkout@v2
      - uses: dart-lang/setup-dart@v1.0
        with:
          sdk: ${{ matrix.sdk }}
      - id: install
        name: Install dependencies
        run: dart pub get
      - name: Check formatting
        run: dart format --output=none --set-exit-if-changed .
        if: always() && steps.install.outcome == 'success'
      - name: Analyze code
        run: dart analyze lib
        if: always() && steps.install.outcome == 'success'

  # Run tests on a matrix consisting of two dimensions:
  # 1. OS: ubuntu-latest, (macos-latest, windows-latest)
  # 2. release channel: dev
  test:
    needs: analyze
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest]
        sdk: [dev]
    steps:
      - uses: actions/checkout@v2
      - uses: dart-lang/setup-dart@v1.0
        with:
          sdk: ${{ matrix.sdk }}
      - id: install
        name: Install dependencies
        run: dart pub get
      - name: Run VM tests
        run: dart run build_runner test -- --platform vm
        if: always() && steps.install.outcome == 'success'
      - name: Run DDC build
        run: dart run build_runner build --fail-on-severe
        if: always() && steps.install.outcome == 'success'
      - name: Run DDC tests
        run: dart run build_runner test -- --platform chrome
        if: always() && steps.install.outcome == 'success'
  document:
    needs: analyze
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest]
    steps:
      - uses: actions/checkout@v2
      - uses: dart-lang/setup-dart@v1.0
        with:
          sdk: dev
      - id: install
        name: Install dependencies
        run: |
          dart pub get
          dart pub global activate dartdoc
      - name: Verify dartdoc
        run: dart pub global run dartdoc \
          --no-generate-docs \
          --errors=unresolved-doc-reference,ambiguous-doc-reference,ambiguous-reexport,broken-link,deprecated,no-library-level-docs,unknown-directive,unknown-macro
        if: always() && steps.install.outcome == 'success'
