Skip to content

Add CI for frontend/nextjs (install, lint, test, build)#42

Merged
Gabrielpanga merged 1 commit into
masterfrom
feat/frontend-nextjs-ci
May 16, 2026
Merged

Add CI for frontend/nextjs (install, lint, test, build)#42
Gabrielpanga merged 1 commit into
masterfrom
feat/frontend-nextjs-ci

Conversation

@Gabrielpanga
Copy link
Copy Markdown
Member

Summary

Adds a GitHub Actions workflow that validates `frontend/nextjs` on every push to master and every PR that touches its files.

Workflow

`.github/workflows/frontend-nextjs-ci.yml` — path-filtered to `frontend/nextjs/**` + the workflow file itself. Concurrency-cancels older runs on the same ref.

Steps:

  1. `pnpm install --frozen-lockfile` — `preinstall` runs `pnpm audit && pnpm audit signatures`, so a newly disclosed vulnerability or an unsigned package fails CI before any later step.
  2. `pnpm run lint` → `tsc --noEmit`
  3. `pnpm run test` → `tsc --noEmit`
  4. `pnpm run build` → `next build` with dummy `PLUGGY_CLIENT_ID` / `PLUGGY_CLIENT_SECRET` (read at module init in `pages/api/token.ts`; no runtime calls during build).

Script changes

`frontend/nextjs/package.json` adds:

  • `typecheck` → `tsc --noEmit`
  • `test` → `tsc --noEmit` (placeholder until real tests exist)
  • `lint` replaced from `next lint` → `tsc --noEmit`

`next lint` triggers an interactive ESLint-config wizard when no config exists, and is also deprecated in current Next.js. The quickstart deliberately ships without an ESLint setup, so for CI purposes `lint` is the type check. Users wanting real ESLint can add `eslint-config-next` on their own fork.

Verification

  • `pnpm install --frozen-lockfile` succeeds (preinstall audit + signatures clean)
  • `pnpm run lint` passes
  • `pnpm run test` passes
  • `pnpm run build` succeeds with dummy env vars

CI workflow runs on pushes to master and PRs that touch
frontend/nextjs/** or the workflow itself.

Steps:
1. pnpm install --frozen-lockfile - preinstall runs pnpm audit +
   pnpm audit signatures, so a vulnerable or unsigned package
   fails the install before anything else runs.
2. pnpm run lint  -> tsc --noEmit
3. pnpm run test  -> tsc --noEmit
4. pnpm run build -> next build with dummy PLUGGY_CLIENT_ID /
   PLUGGY_CLIENT_SECRET (read at module init in pages/api/token.ts;
   no runtime calls made during build).

Scripts added to package.json:
- typecheck: tsc --noEmit (named target for "the code compiles")
- lint:     tsc --noEmit (was `next lint`, which prompts an
  interactive ESLint-config wizard when no config exists and is
  also deprecated in newer Next.js. The quickstart deliberately
  ships without an ESLint setup, so for CI purposes lint = the
  type check. Users wanting real lint can add eslint-config-next
  on their fork.)
- test:     tsc --noEmit (placeholder until real tests exist)

Concurrency-cancel older runs on the same ref.

Verified end-to-end locally with Node 24.14.1 + pnpm 11.1.1.
@Gabrielpanga Gabrielpanga requested a review from a team as a code owner May 16, 2026 14:46
@Gabrielpanga Gabrielpanga merged commit 998ab9c into master May 16, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant