name: Dart CI

on:
  # Run on PRs and pushes to the default branch.
  push:
    branches: [ main ]
    paths:
      - '.github/workflows/source_map_stack_trace.yml'
      - 'pkgs/source_map_stack_trace/**'
  pull_request:
    branches: [ main ]
    paths:
      - '.github/workflows/source_map_stack_trace.yml'
      - 'pkgs/source_map_stack_trace/**'
  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
    defaults:
      run:
        working-directory: pkgs/source_map_stack_trace/
    strategy:
      fail-fast: false
      matrix:
        sdk: [dev]
    steps:
      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
      - uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
        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 --fatal-infos
        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 }}
    defaults:
      run:
        working-directory: pkgs/source_map_stack_trace/
    strategy:
      fail-fast: false
      matrix:
        # Add macos-latest and/or windows-latest if relevant for this package.
        os: [ubuntu-latest]
        sdk: [3.3, dev]
    steps:
      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
      - uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
        with:
          sdk: ${{ matrix.sdk }}
      - id: install
        name: Install dependencies
        run: dart pub get
      - name: Run VM tests
        run: dart test --platform vm
        if: always() && steps.install.outcome == 'success'
      - name: Run Chrome tests
        run: dart test --platform chrome
        if: always() && steps.install.outcome == 'success'
