[AAASM-3511] 🔧 (ci): Run SonarCloud analysis on dashboard PRs#1185
Conversation
Add `needs.changes.outputs.dashboard == 'true'` to the sonar job's `if:` gate so dashboard-only PRs are analyzed automatically instead of only on push or the manual `run-coverage` label. The job already needs dashboard-test and backfills the Rust LCOV when coverage is skipped, so a dashboard PR scans with just the dashboard JS LCOV. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
🔎 Review (Claude Code) — ready for approvalCI: ✅ All green — 37 checks pass, 0 failures. Scope vs AAASM-3511: ✅ Exactly addresses the root cause. The Verdict: Minimal, correct, green. Ready to approve & merge. Once merged, subsequent dashboard PRs (incl. #1186/#1187/#1188) will get a SonarCloud check on re-run. |



Description
The
sonarjob ("SonarCloud analysis") in.github/workflows/ci.ymlwas gatedto run only on
pushevents or PRs carrying the manualrun-coveragelabel.As a result, dashboard-only PRs received no SonarCloud report — the dashboard
JS changes were never analyzed unless someone remembered to apply the label.
This PR adds
needs.changes.outputs.dashboard == 'true'to the job'sif:condition so dashboard PRs are analyzed automatically:
dashboardis a real output of thechangesjob (thedorny/paths-filterdashboardfilter). The sonar job already declaresneeds: [changes, coverage, dashboard-test]and backfills the last successful master Rust LCOV when thecoverageproducer is skipped, so on a dashboard PR (coverage skipped,dashboard-test runs) it scans with just the dashboard JS LCOV — no extra test
runs required.
Type of Change
Breaking Changes
Related Issues
Testing
CI-config-only change to a single job-level
if:gate. Validated locally withactionlint .github/workflows/ci.yml(clean, no findings) and ayaml.safe_loadparse check. The fix takes effect on the next dashboard PR's CI run.
Checklist
cargo fmt,cargo clippy)🤖 Generated with Claude Code