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@v6 - name: Setup pnpm uses: pnpm/action-setup@v6 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: 24 cache: pnpm cache-dependency-path: pnpm-lock.yaml - name: Debug dependency state run: | set -euo pipefail echo "GITHUB_SHA=${GITHUB_SHA}" git log --oneline -1 pnpm --version node --version grep -n "meshtastic__protobufs" pnpm-lock.yaml || true grep -n "2.7.18" pnpm-lock.yaml || true grep -n "2.7.20" pnpm-lock.yaml || true - name: Install dependencies run: pnpm install --frozen-lockfile - 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 "./apps/web" run build