ci: Path-filter frontend and backend GitHub Actions jobs - #598
Conversation
Skip expensive backend or frontend work when a PR only touches the other side of the monorepo. Required checks (Backend Lint, Frontend Lint & Build) still report success via no-op runs so branch protection is not blocked. Schedule and workflow_dispatch keep a full matrix.
|
|
Warning Review limit reached
Next review available in: 57 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThe workflows now detect backend, frontend, and E2E changes through a reusable workflow. CI and test jobs use these outputs to skip unrelated work, preserve required checks, control E2E execution, and report final results. ChangesConditional workflow execution
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant GitHubEvent
participant detect-changes
participant CIWorkflow
participant TestWorkflow
participant ValidationJobs
GitHubEvent->>detect-changes: trigger reusable path detection
detect-changes-->>CIWorkflow: return backend and frontend outputs
detect-changes-->>TestWorkflow: return backend, frontend, and e2e outputs
CIWorkflow->>ValidationJobs: run applicable lint jobs
TestWorkflow->>ValidationJobs: run applicable test and E2E jobs
ValidationJobs-->>TestWorkflow: return job results
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/ci.yml:
- Around line 47-99: Add workflow-level permissions in .github/workflows/ci.yml
near the workflow declaration, granting only contents: read and pull-requests:
read before the frontend-ci commands run; make the same permissions change in
.github/workflows/test.yml near its workflow declaration. Do not modify
detect-changes.yml, which already defines the required permissions.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 2060d930-8c5c-4b0a-8889-b5cfb07af376
📒 Files selected for processing (3)
.github/workflows/ci.yml.github/workflows/detect-changes.yml.github/workflows/test.yml
Nested reusable jobs cannot request more token scopes than the caller allows. That caused CI/Test Suite startup_failure and left required checks stuck on "Expected — Waiting for status".
TLDR
Frontend-only PRs no longer pay for backend pytest/migrations (and vice versa). Required lint checks still report green when their side is unchanged so branch protection keeps working.
Description
detect-changesworkflow (dorny/paths-filter) that labels backend / frontend / e2e path sets; schedule andworkflow_dispatchforce a full run.Backend LintandFrontend Lint & Buildalways run (required checks) but no-op when their paths did not change.Path sets (summary)
comicarr/,tests/,scripts/, deps lockfiles, alembic, generated config types, CI workflow filesfrontend/, CI workflow filesNo changeset — CI-only, no operator-visible app behavior.
Summary by CodeRabbit