name: Panel CI on: push: branches: - master paths: - 'panel/**' - '.github/workflows/panel-ci.yml' pull_request: branches: - master paths: - 'panel/**' - '.github/workflows/panel-ci.yml' workflow_dispatch: jobs: panel: name: Panel (Next.js) runs-on: ubuntu-latest defaults: run: working-directory: panel steps: - name: Checkout code uses: actions/checkout@v7 with: # The release-readiness smoke test calls ``git describe --tags`` to # find the most recent release tag. ``actions/checkout``'s default # shallow + no-tags clone makes that return empty, which made # ``test_gather_snapshot_reads_the_real_repo`` fail with # ``last_tag is None`` even though master had a tagged v0.13.0. # ``fetch-depth: 0`` clones full history; the default ``fetch-tags`` # would still skip tags on shallow clones, so we also pin it true. fetch-depth: 0 fetch-tags: true - name: Set up Node uses: actions/setup-node@v6 with: # pnpm 11 (pinned in panel/package.json via packageManager) requires # Node >=22.13; Node 20 makes `pnpm install` fail the engines check. node-version: '22' - name: Enable corepack (pnpm) run: corepack enable - name: Install dependencies run: pnpm install --frozen-lockfile - name: Lint run: pnpm lint - name: Type-check run: pnpm exec tsc --noEmit - name: Test (vitest + coverage) run: pnpm test