ci: deploy on push to main #39
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Golden CI floor — see dotfiles/templates/ci/README.md. | |
| # datacat: npm monorepo (frontend/ + backend/). The only tests are full-stack | |
| # Playwright e2e that need both servers + a DB running — NOT hermetic, so they | |
| # are deferred to a future e2e job (lift revampit's e2e-local pattern once a | |
| # seeded DB service is wired). This floor gates the frontend quality signals | |
| # that currently never run: lint, typecheck, build (contentlayer + prisma | |
| # generate + next build). The frontend needs --legacy-peer-deps (proven in the | |
| # old deploy workflow). The production Docker deploy stays disabled — enabling a | |
| # deploy is an outward-facing decision, not part of the CI floor. | |
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| verify-frontend: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| # Node 18: contentlayer (unmaintained) crashes on exit under Node 20+ | |
| # (ERR_INVALID_ARG_TYPE in clipanion) even though it generates docs | |
| # fine. The old deploy workflow pinned 18 for the same reason. | |
| node-version: 18 | |
| cache: npm | |
| cache-dependency-path: frontend/package-lock.json | |
| - name: Install | |
| working-directory: frontend | |
| run: npm ci --legacy-peer-deps | |
| # SSOT: one definition of "verified" lives in the ROOT package.json | |
| # `verify` (frontend lint + typecheck), run identically here and locally. | |
| # Runs from repo root — the script cds into frontend itself. | |
| - name: Verify | |
| run: npm run verify | |
| # Build is DEFERRED, not skipped silently. `prisma generate` currently | |
| # fails in CI on a missing engine (query_engine_bg.postgresql.wasm) — a | |
| # repo tooling issue to fix separately, not a gate-worthy signal. The | |
| # full-stack Playwright e2e is also deferred (needs both servers + a DB). | |
| # This floor gates the frontend signals that never ran before: | |
| # lint + typecheck. Add build + e2e once the prisma engine is resolved | |
| # (revampit e2e-local pattern in dotfiles/templates/ci/README.md). |