name: test-javascript

on:
  push:
    branches:
      - main
      - renovate/**
  pull_request:
    branches:
      - main
  workflow_call:

jobs:
  test-javascript:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-latest
        node-version: ["20.x", "22.x", "24.x"]
        include:
          - os: windows-latest
            node-version: "22.x"
          - os: macos-latest
            node-version: "22.x"

    steps:
      - name: set git core.autocrlf to 'input'
        run: git config --global core.autocrlf input

      - uses: actions/checkout@v5

      - name: with Node.js ${{ matrix.node-version }} on ${{ matrix.os }}
        uses: actions/setup-node@v5
        with:
          node-version: ${{ matrix.node-version }}
          cache: "npm"
          cache-dependency-path: package-lock.json

      - run: npm --version

      - run: npm install-ci-test

      - run: npm run build

      - run: npm run lint
