name: CI
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up workspace
        uses: ./.github/actions/setup

      - name: Run linter
        run: npm run lint

  test-node:
    name: Test on Node.js ${{ matrix.node-version }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        node-version: [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up workspace
        uses: ./.github/actions/setup
        with:
          node-version: ${{ matrix.node-version }}

      - name: Run tests
        run: npm run test-node

  test-browser:
    name: Test in browser
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up workspace
        uses: ./.github/actions/setup

      - name: Install browsers
        run: npx playwright install --with-deps

      - name: Run tests
        run: npm run test-browser

