name: Node CI on: push: branches: - main pull_request: permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: actions/setup-node@v7 with: cache: "yarn" - run: yarn install --frozen-lockfile - run: yarn lint test: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] node-version: [20.x, 22.x, 24.x] env: ENABLE_COVERAGE: true AST_COMPARE: true steps: - uses: actions/checkout@v7 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v7 with: node-version: ${{ matrix.node-version }} cache: "yarn" - run: yarn upgrade jest-light-runner@0.7.13 if: ${{ matrix.node-version == '20.x'}} - run: yarn --frozen-lockfile if: ${{ matrix.node-version != '20.x'}} - run: yarn c8 yarn test:node - uses: codecov/codecov-action@v7 with: fail_ci_if_error: true disable_search: true files: coverage/lcov.info token: ${{ secrets.CODECOV_TOKEN }} - run: yarn test:standalone