feat: add CI pipeline with lint, build, and format checks - #10
Conversation
- Add GitHub Actions workflow for CI - Runs prettier, eslint, and build checks on Node 20.x and 22.x - Runs on push to main and pull requests - Adds CI status badge to README Closes #2
…json) npm ci requires package-lock.json which doesn't exist. Project uses bun as package manager with bun.lock. Also adds nuxt prepare step so eslint config can resolve .nuxt/eslint.config.mjs.
|
CI Update: Fixed the install step (switched from CI is now running correctly but Prettier check fails — 29 existing files have formatting issues. This is a pre-existing codebase issue, not a problem with the CI pipeline itself. Suggested follow-up: Run @RiotCoder want to weigh in? Should we fix formatting in this PR or a separate one? |
Fixes 29 files with pre-existing formatting inconsistencies. Ensures CI prettier check passes going forward.
|
Thanks for the progress here. I agree with keeping lint strict and fixing the current 10 errors (instead of relaxing rules). Once a fix commit is pushed, I’ll re-check CI and move this forward quickly. |
|
Quick CI triage update: lint is currently 11 errors / 21 warnings (not 10). Build is green.\n\nMost errors are concentrated in these files:\n- ()\n- ()\n- ( x2)\n- ( + x3)\n- ()\n- ()\n- ()\n\nSuggested fix order:\n1. Run for auto-fixable warnings\n2. Fix the 11 remaining errors manually\n3. Re-run and push\n\nOnce pushed, I’ll re-check and merge fast. |
|
Correction (formatting broke in previous comment) — here is the exact triage:\n\nCurrent lint status: 11 errors / 21 warnings (build is green).\n\nMain error files/rules:\n- app/components/bg/AuroraWaves.vue — @typescript-eslint/no-extraneous-class\n- app/components/bg/DNAHelix.vue — @typescript-eslint/no-unused-vars\n- app/components/bg/FluidRipples.vue — prefer-const (2)\n- app/components/bg/MetaballOrbit.vue — @typescript-eslint/no-unused-vars + prefer-const (3)\n- app/components/bg/RibbonFlow.vue — @typescript-eslint/no-unused-vars\n- app/error.vue — vue/valid-template-root\n- app/pages/index.vue — vue/no-multiple-template-root\n\nSuggested order:\n1) bun run lint -- --fix\n2) manually fix the 11 errors above\n3) bun run lint\n\nOnce pushed, I will re-check CI and merge quickly. |
|
I’m not seeing a new commit on yet (latest visible CI run is still the previous failing run). If lint fixes were pushed to a different branch/fork, please share the commit hash or branch link and I’ll review/merge immediately once checks are green. |
|
Correction: I still do not see a new commit on branch feat/issue-2-ci-pipeline yet; latest visible CI run is still the previous failing run. If lint fixes were pushed to another branch/fork, please share commit hash or branch link and I will review/merge immediately once checks are green. |
…, template child, self-closing canvas)
|
I can confirm commit exists in the repo, but it is not attached to this PR branch () yet, so CI for this PR is still on the old failing commit set.\n\nPlease either:\n1) push onto , or\n2) open a new PR from the branch containing and link it here.\n\nAs soon as checks go green on the correct branch, I’ll review and merge immediately. |
|
Correction (formatting): I can confirm commit fcdd8f3 exists in the repo, but it is NOT attached to this PR branch (feat/issue-2-ci-pipeline) yet, so CI here is still from the old failing commit set.\n\nPlease either:\n1) push fcdd8f3 onto feat/issue-2-ci-pipeline, or\n2) open a new PR from the branch containing fcdd8f3 and link it here.\n\nAs soon as checks go green on the correct branch, I will review and merge immediately. |
|
Applied maintainer fix: I synced commit from into this PR branch (). I also triggered a CI rerun for the failed jobs. I’ll merge as soon as checks are green. |
|
Maintainer update: I synced commit fcdd8f3 from the fork into this PR branch (feat/issue-2-ci-pipeline) and triggered a CI rerun for failed jobs. I will merge immediately once checks are green. |
alvinreal
left a comment
There was a problem hiding this comment.
🔍 Review: CI Pipeline PR (#10)
This PR fully satisfies issue #2 requirements:
✅ Prettier check -
✅ ESLint -
✅ Build verification -
✅ Multi-node testing - Node 20.x and 22.x matrix
✅ CI badge - Added to README
The workflow structure is clean with separate lint and build jobs. Testing on both Node versions ensures compatibility.
Recommendation: Ready for approval once another maintainer reviews.
Great work @alvinreal! 🎉
|
🔍 Review: CI Pipeline PR (#10) This PR fully satisfies issue #2 requirements: ✅ Prettier check - The workflow structure is clean with separate lint and build jobs. Testing on both Node versions ensures compatibility. Recommendation: Ready for approval once another maintainer reviews. Great work @alvinreal! 🎉 |
alvinreal
left a comment
There was a problem hiding this comment.
🔍 PR Review for #10 (CI Pipeline)
Thanks for setting up CI! Infrastructure like this is critical. However, there's a lint error blocking merge:
Error:
- app/pages/index.vue:101:3 — vue/no-multiple-template-root: Template requires exactly one root element
Warnings (auto-fixable with --fix):
- Vue HTML self-closing rule conflicts in CosmicAnomaly.vue and index.vue
- v-html XSS warning in index.vue:86
- Attribute order issues (class before event handlers)
Recommended fix:
- Fix the multiple template root error in index.vue
- Run bun run lint --fix to auto-fix the warnings
- Push the fixes and CI will re-run green
Once those are resolved, the CI looks good — prettier passes, both build jobs (Node 20 and 22) pass. Ready to approve after lint fixes. 🦞
Summary
This PR adds a comprehensive CI pipeline to ensure code quality and catch issues before merge.
Changes
.github/workflows/ci.yml):mainand all pull requestsprettier --check .for format validationeslint --ext .ts,.js,.vue .for lintingnuxt buildfor build verificationWhy
Ensures consistent code quality and prevents broken builds from merging. Essential for smooth team collaboration.
Closes #2