name: CI on: push: branches: - main pull_request: branches: - main merge_group: {} jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install pnpm uses: pnpm/action-setup@v4 - name: Set node uses: actions/setup-node@v4 with: node-version: 23 cache: pnpm - name: Setup run: npm i -g @antfu/ni - name: Install run: nci - name: Lint run: nr lint test: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest] node_version: [23, lts/*] include: - os: macos-latest node_version: lts/* - os: windows-latest node_version: lts/* fail-fast: false steps: - name: Set git to use LF run: | git config --global core.autocrlf false git config --global core.eol lf - uses: actions/checkout@v4 - name: Install pnpm uses: pnpm/action-setup@v4 - name: Set node ${{ matrix.node_version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node_version }} cache: pnpm - run: corepack enable - name: Setup run: npm i -g @antfu/ni - name: Install run: nci - name: Build run: nr build - name: Test run: nr test - name: Typecheck run: nr typecheck playwright-smoke: runs-on: ubuntu-latest needs: test steps: - uses: actions/checkout@v4 - name: Install pnpm uses: pnpm/action-setup@v4 - name: Set node uses: actions/setup-node@v4 with: node-version: lts/* cache: pnpm - run: corepack enable - name: Install run: pnpm install --frozen-lockfile - name: Install Playwright Chromium run: pnpm exec playwright install --with-deps chromium - name: Diff smoke run: pnpm smoke:diff