Skip to content

chore(ci): GitHub Actions improvements - #392

Open
rlorenzo wants to merge 3 commits into
mainfrom
chore/github-actions-improvements
Open

rlorenzo wants to merge 3 commits into
mainfrom
chore/github-actions-improvements

Conversation

@rlorenzo

Copy link
Copy Markdown
Contributor

Three CI improvements, one per commit.

Run PR checks on stacked PRs

Tests, code quality, and the Development merge check only ran for PRs targeting main. A PR stacked on another feature branch, such as #383 on #385, got no tests or quality gates. Its merge check also stayed red after it landed in Development, because the refresh after a Development push listed only PRs into main.

  • Tests and code quality now run on PRs into any base. The quality baselines already compare against the PR's own base.
  • The merge check now runs on PRs into any base except Development.
  • After a Development push, red merge checks on every open PR are re-run.

Skip C# and Vue checks a PR does not touch

A new composite action, .github/actions/changed-stacks, diffs the PR against its base and reports csharp and vue flags. Heavy jobs skip when their stack is untouched:

Changes Runs
web/, test/, Viper.sln*, Directory.Build.props, global.json, .config/ Backend Tests, ReSharper gate, JSCPD (C#), CodeQL C# and JS
VueApp/, ESLint/oxlint/stylelint configs, .env* Frontend Tests, Fallow, JSCPD (Vue), CodeQL JS
Root package*.json, scripts/, .editorconfig, the workflow's own file, the action itself Both
Docs or other workflow files Neither

Pushes to main and the weekly CodeQL schedule still run everything. No status checks are required today, so skipped jobs can't block a merge. A job skipped by if: also counts as passing if checks become required later.

CodeRabbit Gate check

  • .coderabbit.yaml: request_changes_workflow: true. CodeRabbit now requests changes when it finds actionable issues, and approves once its threads are resolved. A declined finding passes once its thread is resolved with a reply.
  • New CodeRabbit Gate workflow: it passes only when CodeRabbit's latest verdict (approve, request changes, or dismissed) is an approval. It re-runs on every push and every review. Drafts and Dependabot PRs are skipped.

Notes:

  • After a push, the previous approval stands until CodeRabbit reviews the new commits and changes its verdict.
  • Open PRs reviewed before this change have no verdict yet, so the gate stays red on them until CodeRabbit reviews again.
  • The gate isn't required yet. Watch it on a few PRs, then add it as a required check in a ruleset.

Test plan

  • This PR touches tests.yml, code-quality.yml, codeql.yml, and the action, so every job should run here
  • A docs-only PR runs only the light jobs
  • CodeRabbit approves, or requests changes, on this PR, and the gate follows its verdict

- Run tests and code quality on PRs into any base, not only main
- Evaluate the Development merge check on stacked PRs
- Refresh red merge checks on every open PR after a Development push
- Tests, code quality, and CodeQL run per stack (C# or Vue) only when
  the PR changes that stack or shared tooling
- Pushes and scheduled runs still check everything
- CodeRabbit now requests changes on actionable issues and approves
  once its threads are resolved
- New CodeRabbit Gate check passes only when its latest verdict is an
  approval
@coderabbitai

coderabbitai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

  • Run on-demand review

This review includes 7 billable files and costs up to $1.75.

  • Ask an admin to make reviews automatic

Open in CodeRabbit

Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing.

Or wait 23 minutes for your next included review.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available. Your 55 included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour.

Learn how review limits work.

Review configuration:

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 0c3c822 and 3926b40.

Files selected for processing: 7

  • .coderabbit.yaml
  • .github/actions/changed-stacks/action.yml
  • .github/workflows/code-quality.yml
  • .github/workflows/codeql.yml
  • .github/workflows/coderabbit-gate.yml
  • .github/workflows/development-merge-check.yml
  • .github/workflows/tests.yml
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@codecov-commenter

Copy link
Copy Markdown

Bundle Report

Bundle size has no change ✅

@codecov-commenter

codecov-commenter commented Nov 10, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 49.45%. Comparing base (0c3c822) to head (3926b40).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #392   +/-   ##
=======================================
  Coverage   49.45%   49.45%           
=======================================
  Files        1232     1232           
  Lines       62435    62435           
  Branches     8748     8748           
=======================================
+ Hits        30876    30877    +1     
+ Misses      30125    30124    -1     
  Partials     1434     1434           
Flag Coverage Δ
backend 46.94% <ø> (ø)
frontend 67.46% <ø> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes

@rlorenzo

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor
Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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.

2 participants