on: ['push', 'pull_request']

jobs:
    build:
      runs-on: ubuntu-latest

      strategy:
        matrix:
          node: [18.x, 20.x]
          
      name: Node ${{ matrix.node }}
      steps:
        - uses: actions/checkout@v4.1.2

        - name: Setup node
          uses: actions/setup-node@v4.0.2
          with:
            node-version: ${{ matrix.node }}

        - name: Install dependencies
          run: npm ci

        - name: Lint code
          run: npm run lint

        - name: Run tests
          run: npm test

        - name: Build dist
          run: npm run build