name: Cross-platform validation on: pull_request: push: branches: [main] permissions: contents: read jobs: build-and-test: name: ${{ matrix.os }} / Node ${{ matrix.node }} runs-on: ${{ matrix.os }} env: GITHUB_TOKEN: ${{ github.token }} strategy: fail-fast: false matrix: os: [windows-latest, macos-latest] node: [20, 22, 24] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7 with: node-version: ${{ matrix.node }} cache: npm - run: npm ci - run: npm run check - name: Enforce unit test coverage baseline if: matrix.os == 'windows-latest' && matrix.node == 22 run: npm run test:coverage - name: Verify packaged files run: npm run pack:check