devops-cicdlisted
Install: claude install-skill talentedgeai/infinite-leverage
# DevOps: CI/CD Pipeline
## What this builds
A GitHub Actions workflow that runs automatically on every PR and push to `main`:
1. **Install** — clean dependency install
2. **Lint** — ESLint code quality checks
3. **Type check** — TypeScript strict checks
4. **Test** — Vitest unit and integration tests (the canonical scaffold ships Vitest;
on a Jest project use `npx jest --ci --passWithNoTests` instead — `--ci` is a Jest
flag and Vitest rejects it)
5. **Build** — Next.js production build (catches build-time errors before they reach Vercel)
Vercel handles preview and production deployments automatically via its GitHub integration — this CI is the code quality gate that protects `main`.
---
> **Layout note** — the workflow below assumes the canonical scaffold, where the app
> lives in `website/`. On a repo with the app at the root, drop the `defaults.run.working-directory`
> block and change `cache-dependency-path` to `package-lock.json`. Check before you write:
> `ls website/package.json 2>/dev/null || echo "app is at the repo root"`.
## Step 1 — Check what already exists
```bash
ls .github/workflows/ 2>/dev/null || echo "No workflows yet"
```
If a CI file exists, read it before making changes. Don't overwrite working configuration.
---
## Step 2 — Create the workflow
Write `.github/workflows/ci.yml`:
```yaml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
quality:
name: Lint, type-check, test, build
runs-on: ub