Repository navigation
Updates and CI
This page documents release versioning, Admin updater behavior, and the GitHub Actions checks used by the Portfolio repository.
If the Admin updater must detect a release, increase the application version before merging.
Example:
1.1.41 -> 1.1.42
A code-only merge that leaves the same version can be valid Git history but may not appear as a new Admin update.
Before merge:
[ ] Version bumped when updater detection is required
[ ] Prisma schema valid
[ ] Migration included if schema changed
[ ] Typecheck green
[ ] Lint green
[ ] Standard build green
[ ] N0C/WASM build green where required
[ ] Visual smoke green
[ ] Design-approved label present if protected frontend files changed
[ ] No secrets committed
[ ] Deployment/environment changes documented
After production update:
[ ] Admin updater reports expected installed version
[ ] Node/Passenger application restarted
[ ] Home checked on desktop and mobile
[ ] Blog/Projects database reads tested
[ ] Gallery filters tested
[ ] Admin login tested
[ ] Logs checked for new errors
Certain frontend files are treated as protected design surfaces. PRs changing them require explicit approval through the design-approved label.
Important behavior: adding the label after the original pull-request event does not modify that old event payload. If the guard still fails after adding the label, push a new commit to trigger a fresh synchronize event.
Runs TypeScript validation, typically equivalent to:
npm run typecheckA visual test can pass while typecheck still fails.
Lint changed JS/TS files. React 19 rules can flag patterns such as synchronous setState() inside effects.
Prefer architectural fixes instead of disabling lint rules globally.
Runs the normal Next.js production build.
The project contains a WASM-oriented compatibility build for the N0C/CloudLinux environment:
npm run build:n0cPlaywright verifies key public views. This is a smoke/evidence check rather than a strict pixel-by-pixel visual-regression baseline.
CI uses a clean PostgreSQL database to verify Prisma Client generation, schema validation, production migration deployment, migration status, and the shared runtime singleton guard.
This helps catch migrations that work only against an already-mutated development database.
npm run typecheck
npm run lint
npm run buildDatabase-related checks:
npx prisma generate
npx prisma validate
npx prisma migrate statusRecommended:
git checkout -b feat/my-change
# edit/test
git push -u origin feat/my-changeOpen a PR against main and wait for required CI checks.
Read the exact failed step instead of rerunning repeatedly.
A useful diagnosis order is:
- determine which job failed;
- inspect that job's step list;
- inspect the relevant logs;
- fix the root cause in the branch;
- push a new commit;
- verify the new workflow run.
See Troubleshooting for known project-specific failures.