ci: de-duplicate ci.yaml and qa.yaml (JG-18) - #41
Conversation
Two file-visible overlaps removed, no behavior loss: - `chr-integration` was defined in BOTH ci.yaml and qa.yaml, so a single workflow_dispatch fired two identical CHR jobs. Consolidated to qa.yaml — the only workflow with the weekly schedule + the stable/long-term channel matrix. ci.yaml is now purely the fast push/PR gate (lint, unit test, build, fixture integration); its CHR-only workflow_dispatch inputs are removed. On-demand CHR is now `gh workflow run qa.yaml -f run-integration=true -f routeros_channel=…`. - `build` ran in both ci.yaml (`ci`) and qa.yaml (`extended-tests`). Dropped from qa.yaml; build stays in the fast gate. CodeQL default-setup is not-configured, so the qa.yaml workflow CodeQL (javascript-typescript + actions, two distinct languages) is the only security scan — no duplicate to remove there. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 56 minutes and 18 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the 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 configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe CI workflow ( ChangesWorkflow Responsibility Consolidation
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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.
Pull request overview
This PR de-duplicates GitHub Actions CI configuration by consolidating the RouterOS CHR integration workflow into qa.yaml and keeping ci.yaml as the fast PR/push gate.
Changes:
- Removed the duplicate
buildstep from the QA workflow so build runs only in the CI fast gate. - Removed the duplicate CHR integration job and its dispatch inputs from
ci.yaml, leaving CHR integration inqa.yaml.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| .github/workflows/qa.yaml | Drops the duplicate build step from QA’s extended-tests job while retaining coverage, probes, CodeQL, and CHR matrix execution. |
| .github/workflows/ci.yaml | Removes the CHR integration job and workflow_dispatch inputs so CI remains a fast push/PR gate. |
| on: | ||
| push: | ||
| branches: [main] | ||
| pull_request: | ||
| branches: [main] | ||
| workflow_dispatch: | ||
| inputs: | ||
| run-integration: | ||
| description: Run RouterOS CHR integration tests | ||
| type: boolean | ||
| default: true | ||
| routeros_channel: | ||
| description: RouterOS channel for CHR integration when routeros_version is empty | ||
| type: choice | ||
| options: | ||
| - stable | ||
| - long-term | ||
| - testing | ||
| - development | ||
| default: stable | ||
| routeros_version: | ||
| description: Explicit RouterOS version for CHR integration; overrides routeros_channel | ||
| type: string | ||
| default: "" | ||
| # CI is the fast push/PR gate (lint, unit tests, build, fixture integration). | ||
| # RouterOS CHR integration lives only in qa.yaml (scheduled matrix + on-demand | ||
| # workflow_dispatch) so there is one chr-integration definition, not two. |
Copilot review on #41: removing workflow_dispatch entirely blocked manually re-running the fast gate. Re-add a bare `workflow_dispatch: {}` (no inputs); only the CHR-specific inputs + job move to qa.yaml, so "no behavior loss" holds. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* test(smoke): add network-free CLI smoke tier (JG-10) A real-subprocess smoke set over the cli-process harness: top-level + command help, the invalid-command envelope, and a full devices CDB round-trip (add → list → show → remove + an unknown-target error envelope) against a temp-HOME default CDB. No RouterOS/CHR, so it is not gated behind CENTRS_RUN_FAST_INTEGRATION and runs in the fast push/PR gate via the existing `bun test` Test step — no new CI job, which would re-duplicate right after the #41 workflow de-dupe. Adds a `test:smoke` script for standalone runs. The pre-existing test/unit/smoke.test.ts is an exports/project-baseline unit test, not a CLI smoke; the real CLI smoke needs the subprocess harness (test/integration/cli-process.ts), hence test/integration/cli-smoke.test.ts. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * test(smoke): clarify layout + harden envelope parse (review) Address PR #42 review: - Copilot: document that test/integration/ "platform-specific" includes the network-free, always-run subprocess CLI smoke (it spawns the real cli.ts via cli-process.ts), so its placement matches the test layout rules. - CodeRabbit: parseEnvelope now validates it got an object with a boolean `ok` and throws a clear message otherwise, instead of a bare type assertion. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
What
Removes two file-visible CI overlaps, no behavior loss (the JG-18 "audit + de-dupe" foundation).
chr-integrationworkflow_dispatchfired two identical CHR jobsschedule+ the stable/long-term channel matrix)buildci) and qa.yaml (extended-tests)Result
test,build, fixture-integration (PR). Its CHR-onlyworkflow_dispatchinputs are removed.test:ci), CodeQL, AI-findings probe, and the CHR matrix (schedule + dispatch).gh workflow run qa.yaml -f run-integration=true -f routeros_channel=<channel>(was ci.yaml).Security-scan note (the "too many duplicate scans" concern)
code-scanning/default-setupis not-configured, so the qa.yaml workflow CodeQL (javascript-typescript+actions— two distinct languages, not dupes) is the only code scan. No duplicate security scan to remove.CI-config only; no source changes. YAML validated locally;
lint:cigreen. The qa.yamlchr-integrationblock is unchanged (only the duplicatebuildstep was dropped).Part of June-Gloom Phase 2 (CI). JG-18 (de-dupe portion).
🤖 Generated with Claude Code
Summary by CodeRabbit