name: Pull Request CI on: pull_request: types: [opened, synchronize, reopened, ready_for_review] permissions: contents: read concurrency: group: pr-${{ github.event.pull_request.number }}-ci cancel-in-progress: true env: CI: true jobs: build-and-package: runs-on: ubuntu-latest if: ${{ github.event.pull_request.draft == false }} steps: - name: Checkout code uses: actions/checkout@v5 - name: Setup pnpm uses: pnpm/action-setup@v4 with: version: 10 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: 24 cache: pnpm cache-dependency-path: "**/pnpm-lock.yaml" - name: Prefetch dependencies run: pnpm fetch - name: Install dependencies run: pnpm install --frozen-lockfile --prefer-offline - name: Run linter run: pnpm run lint - name: Check formatter run: pnpm run check - name: Run tests run: pnpm run test - name: Build web package run: pnpm --filter "./packages/web" run build