name: 'Lint And Test'

on:
  push:
    branches:
      - master
      - next
  pull_request:
    branches:
      - master
      - next

jobs:
  lint:
    name: Lint Check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 'lts/*'
      - name: Install Packages
        run: npm install
      - name: Lint Code
        run: npm run lint:ci

  run_tests:
    name: Unit Tests
    strategy:
      matrix:
        os:
          - ubuntu-latest
          - windows-latest
        node:
          - 16
          - 18
          - 20
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node }}
      - name: Install Packages
        run: npm install
      - name: Run Tests
        run: npm run test:ci
