name: Node.js CI on: push: branches: - main pull_request: types: [opened, synchronize, reopened, ready_for_review] permissions: contents: read jobs: run-tests: strategy: matrix: node-version: ['25', '24', '22', '20'] os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v6 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v6 with: node-version: ${{ matrix.node-version }} cache: ${{ runner.os != 'Windows' && 'npm' || '' }} - name: Install Dependencies run: npm ci - name: Test run: npm run test