Skip to content

ci: pytest + tsc/vitest/eslint gate; eslint flat config (#162)#209

Merged
Jose-Gael-Cruz-Lopez merged 1 commit into
mainfrom
ci/add-pipeline
Jun 12, 2026
Merged

ci: pytest + tsc/vitest/eslint gate; eslint flat config (#162)#209
Jose-Gael-Cruz-Lopez merged 1 commit into
mainfrom
ci/add-pipeline

Conversation

@Jose-Gael-Cruz-Lopez

Copy link
Copy Markdown
Member

What

Adds .github/workflows/ci.yml running on every PR + push to main:

  • backendpytest on Python 3.13 (deps minus the multi-GB OCR stack; OCR integration tests stay under the manual evals workflow, dummy non-secret env so config/encryption import succeeds).
  • frontendeslint + tsc --noEmit + vitest on Node 20 via npm ci.

Adds frontend/eslint.config.mjs — Next 16 removed next lint, so lint now runs through the ESLint CLI against a flat config spreading eslint-config-next 16's native flat-config arrays.

Why

#162: with no CI, the suites/typecheck/lint never ran on PRs — which is how a time-bomb test, dead links, and broken queries reached main unnoticed.

Lint ratchet

164 pre-existing eslint errors (mostly eslint-config-next 16's newly-strict react-hooks rules + existing any) are demoted to warnings so the gate is green now and blocks new error-level violations. Re-promote per-rule as the design/a11y waves clean up.

How verified

Locally: npx eslint . → 0 errors; tsc --noEmit clean; vitest run 37/37. Backend pytest baseline established by this PR's own CI run.

Closes #162

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@Jose-Gael-Cruz-Lopez, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 39 minutes and 32 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c8d10a40-1a27-4997-a4dc-fbcd4ba5b7ba

📥 Commits

Reviewing files that changed from the base of the PR and between d5ae00f and ce9bbcc.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • frontend/eslint.config.mjs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/add-pipeline

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 12, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
frontend ce9bbcc Commit Preview URL

Branch Preview URL
Jun 12 2026, 03:12 AM

Closes the #162 gap (nothing ran the suites/typecheck/lint on PRs). Adds
.github/workflows/ci.yml with a backend pytest job (py3.13) and a frontend
job running eslint + tsc + vitest on every PR and push to main.

Next 16 removed `next lint`, so linting now runs via the ESLint CLI against a
new flat config (frontend/eslint.config.mjs) that spreads eslint-config-next 16's
native flat-config arrays. Rules with pervasive pre-existing violations
(react-hooks v6 strict set, no-explicit-any, etc.) are demoted to warnings so
the gate is green today and blocks new error-level violations.

Notes:
- Frontend: setup-node's npm 10.8.2 is below the engines floor (>=10.9.0), so
  npm is pinned to 10.9.2 before `npm ci`.
- Backend: the OCR integration tests (torch/docling/transformers) and the
  pre-existing non-hermetic tests (test_documents_routes module + one graph
  test, tracked in #210) are excluded so the gate is green for the ~580 tests
  that pass; #210 tracks making them hermetic and removing the quarantine.
@Jose-Gael-Cruz-Lopez Jose-Gael-Cruz-Lopez merged commit 2ed485f into main Jun 12, 2026
6 checks passed
@Jose-Gael-Cruz-Lopez Jose-Gael-Cruz-Lopez deleted the ci/add-pipeline branch June 12, 2026 03:13
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.

No CI runs pytest / vitest / lint / typecheck on push or PR — regressions merge green

1 participant