name: package:json_rpc_2

on:
  # Run on PRs and pushes to the default branch.
  push:
    branches: [ main ]
    paths:
      - '.github/workflows/json_rpc_2.yaml'
      - 'pkgs/json_rpc_2/**'
  pull_request:
    branches: [ main ]
    paths:
      - '.github/workflows/json_rpc_2.yaml'
      - 'pkgs/json_rpc_2/**'
  schedule:
    - cron: "0 0 * * 0"

env:
  PUB_ENVIRONMENT: bot.github


defaults:
  run:
    working-directory: pkgs/json_rpc_2/

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@11bd71901bbe5b1630ceea73d27597364c9af683
      - uses: dart-lang/setup-dart@e630b99d28a3b71860378cafdc2a067c71107f94
        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 }}
    strategy:
      fail-fast: false
      matrix:
        # Add macos-latest and/or windows-latest if relevant for this package.
        os: [ubuntu-latest]
        sdk: [3.4, dev]
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
      - uses: dart-lang/setup-dart@e630b99d28a3b71860378cafdc2a067c71107f94
        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 browser tests
        run: dart test --platform chrome --compiler dart2wasm,dart2js
        if: always() && steps.install.outcome == 'success'
