name: run tests

on:
  workflow_dispatch:
  push:
    branches:
      - main
    paths-ignore:
      - '**.md'
  pull_request:
    paths-ignore:
      - '**.md'

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

    strategy:
      matrix:
        node-version:
          - 20
          - 22
          - 24
        os: 
          - ubuntu-latest
          - windows-latest
          - macOS-latest

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 20
      - run: npm ci
      - run: npm run lint
      - run: npm test
