# CI workflow: one clone, one workspace — install → lint → build → test. # Runs on pull requests, push/tag/manual on main, or manual from any branch. # Deploy workflow depends on this (ci) and runs only on main. when: - event: pull_request - event: push branch: main - event: tag - event: manual steps: - name: install image: node:20-alpine commands: - corepack enable && corepack prepare pnpm@10.28.2 --activate - pnpm install --frozen-lockfile || pnpm install - name: lint image: node:20-alpine commands: - corepack enable && corepack prepare pnpm@10.28.2 --activate - pnpm run lint - pnpm run lint:css - name: build image: node:20-alpine commands: - corepack enable && corepack prepare pnpm@10.28.2 --activate - pnpm run build - name: test image: node:20-alpine commands: - corepack enable && corepack prepare pnpm@10.28.2 --activate - pnpm test - name: test e2e image: mcr.microsoft.com/playwright:v1.58.0-noble commands: - corepack enable && corepack prepare pnpm@10.28.2 --activate - pnpm install --frozen-lockfile || pnpm install - pnpm run build - npx serve dist -p 4173 & - sleep 2 - CI=1 pnpm run test:e2e