name: Validate

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

jobs:
  validate:
    name: Validate
    strategy:
        matrix:
          os: [ubuntu-20.04, windows-2022, macos-11]

    runs-on: ${{ matrix.os }}

    steps:

      - name: Fetch Repository
        uses: actions/checkout@v3
        with:
          persist-credentials: false

      - name: Install Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 16.17.0
          cache: 'npm'

      - name: Install Modules
        run: npm ci

      - name: Build Sample Addon
        run: npm run test-build

      - name: Run Unit Tests
        run: npm run test-ci

      - name: Run ESLint
        run: npm run eslint