name: Test
on: [push, pull_request]
permissions:
  contents: read
jobs:
  lint:
    runs-on: ubuntu-latest
    name: Lint
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          submodules: recursive
      - name: Use node latest
        uses: actions/setup-node@v3
        with:
          node-version: latest
      - name: Install
        run: npm install
      - name: Lint Test
        run: npm run lint-test
  test:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        node: [12, 14, 16]
        arch: [x86, x64]
        exclude:
          - { os: ubuntu-latest, arch: x86 }
          - { os: macos-latest, arch: x86 }
    runs-on: ${{ matrix.os }}
    name: ${{ matrix.os }} / Node ${{ matrix.node }} ${{ matrix.arch }}
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          submodules: recursive
      - name: Use node ${{ matrix.node }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node }}
          architecture: ${{ matrix.arch }}
      - name: Install
        run: npm install
      - name: Test
        run: npm test
