Conversation
There was a problem hiding this comment.
Pull request overview
This PR refactors the CI workflow to reduce the number of jobs/runners by consolidating linting, docs build, unit tests (with coverage), and integration tests into a single test job, while also adjusting artifacts/coverage outputs to support Sonar ingestion and dropping Node 20 from the matrix.
Changes:
- Renames the primary job to
testand restricts the Node matrix to[22]. - Attempts to run lint/docs/tests/integration “in parallel” within the same job runner.
- Adds an artifact upload step intended to provide coverage + transpiled JS outputs for Sonar.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| package: | ||
| runs-on: ubuntu-latest |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
c4eadcd to
3211cff
Compare
This comment was marked as resolved.
This comment was marked as resolved.
## Summary Combines the SonarCloud-relevant improvements from #2977 and #2979 into a focused, merge-ready PR, plus fixes Codecov carry-forward inflation discovered during review. Credits @ssbarnea for the original SonarCloud work. ## Changes ### SonarCloud configuration (from #2977 / #2979) - **LCOV report paths**: configure explicit comma-separated paths (`coverage/lcov.info,coverage/wdio/lcov.info`) instead of glob patterns — SonarScanner's wildcard handling for this property is inconsistent ([Copilot review on #2977](#2977 (review))) - **Test scope**: add `packages/common/test/` to `sonar.tests` (was missing) - **Branch-analysis docs**: document long-lived branch pattern for SonarCloud without hardcoding `sonar.branch.name`/`sonar.branch.target`, which would break PR scans - **Log verbosity**: reduce from `DEBUG`/`verbose=true` to `INFO`/`false` — `DEBUG` is only useful when diagnosing scanner issues - **Coverage artifact upload**: upload LCOV files from `build-and-test` and `ui` jobs via `ansible/actions/upload-artifact@b2b0657c # v1.1.2` (gitleaks-secured wrapper around `actions/upload-artifact`) - **`.gitignore`**: ignore `**/*.tgz` packaging artifacts ### Codecov carry-forward fix After merging #2983 (honest coverage), we observed coverage jumping from an honest ~39% to an inflated 87.67% after late-arriving WSL uploads triggered re-computation. Root cause: Codecov's default `carryforward: true` was merging stale (pre-#2983) inflated coverage data for flags that hadn't yet uploaded fresh results. - **Disable carry-forward** for all 5 flags (`unit-node22/24/26`, `wdio`, `wsl-fedora`) — each flag uploads fresh data on every CI run, so carry-forward is unnecessary and was actively harmful - **Increase `after_n_builds`** from 3 to 5 to match actual upload count (3 build-and-test matrix + 1 wdio + 1 wsl) - **Enable `wait_for_ci`** so Codecov waits for all uploads before computing the final merged report ## What was NOT included from #2979 - Job consolidation (we intentionally have separate lint/test/integration/ui/package jobs) - WSL workflow deletion (we recently added WSL CI with retry logic in #2981) - `package.json` script changes - `prek.toml` changes (disabling skillmark/actionlint) ## Test plan - [ ] CI passes (no source code changes — config only) - [ ] Codecov reports honest coverage (~39%) after all 5 uploads complete - [ ] SonarCloud scan on `next` picks up LCOV reports after merge - [ ] Coverage artifacts appear in Actions run summary Supersedes #2977. Co-authored-by: Sorin Sbarnea <ssbarnea@users.noreply.github.com> --------- Co-authored-by: Sorin Sbarnea <ssbarnea@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
71e81ef to
f52b6d9
Compare
- use a single runner for all test via parallel run - collect logs and coverage reports in format required by sonar - avoid running with node 20, use only 24 like current main - temporary disable skillmark hook due to being unreliable - temporary disable actionlint hook due to not support latest gha syntax
Post-merge review: regressions and ADR complianceAfter reviewing the merged diff, I wanted to document several regressions and ADR violations so we can track resolution. Quality gate removals
CI coverage reductions
Supply-chain safety
Build artifacts
ADR violations
Not a regression
Suggested follow-ups
|
## Summary - Restore CI Node matrix to **22 / 24 / 26** (`engines` still allows `>=22.18.0`; #2979 collapsed to 24-only without a compatibility reason) - Re-enable **actionlint** and **skillmark** in `prek.toml` (actionlint path updated to `next.yml`; skillmark scoped to `.agents/skills` + `skills` with `--exclude .wdio-vscode/**`) - Pin artifact actions to commit SHAs; stop using `ansible/actions/upload-artifact@main` - Restore stable **`vsix`** artifact name + **npm tarball** uploads (once on linux/node 24) - Fix `package` script to use `pnpm run build` instead of `npm run build` - Drop the bogus `macos`×`ubuntu-latest` duplicate matrix cells — tracked in #3034 - Skip WDIO UI on Node 26 only (`UND_ERR_INVALID_ARG`) — tracked in #3035; lint/unit/integration/package still run on 26 Keeps the monolithic `test` job from #2979 (job count intentionally unchanged). Addresses post-merge review on #2979 / AAP-81317 fallout. ## Test plan - [x] `pnpm run ci` locally (pre-push) - [x] `pnpm exec prek run skillmark actionlint -a` - [x] CI shows `test-linux-node22`, `test-linux-node24`, `test-linux-node26` - [ ] `test-linux-node26` green with UI skipped - [ ] PR artifacts include `vsix`, `plugin`, `mcp-server`, `language-server`, `npm-tarballs` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - Adds an aggregator job to emit the required `test-linux` check while retaining version-specific matrix job names. - Restores Node 22/24/26 Linux CI gates/artifacts: re-enables actionlint + skillmark, pins actions, restores VSIX and npm tarball uploads. - Pins artifacts, updates the `package` script to `pnpm run build`, and skips WDIO UI tests on Node 26. Related: `#2979` <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Related: AAP-81317