test(e2e): bridge retired controller selectors - #7647
Conversation
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
📝 WalkthroughWalkthroughAdds retired controller selector compatibility execution, planner filtering, evidence artifacts, workflow integration, and validation tests for successful and failing selection paths. ChangesRetired selector compatibility
Estimated code review effort: 3 (Moderate) | ~25 minutes Suggested labels: Sequence Diagram(s)sequenceDiagram
participant Workflow as GitHub Actions workflow
participant Planner as workflow-plan
participant Runner as retired-selector-compatibility
participant Vitest
participant Artifacts as E2E artifact upload
Workflow->>Planner: plan selected E2E jobs
Planner->>Planner: filter retired selectors
Workflow->>Runner: run selected compatibility jobs
Runner->>Vitest: execute replacement projects
Vitest-->>Runner: return test status
Runner->>Artifacts: write and upload evidence
Workflow->>Workflow: report compatibility result to PR
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
PR Review Advisor — No blocking findings reportedAdvisor assessment: No blocking advisor findings reported Model lanes
Nemotron output stays in workflow artifacts and does not change the assessment above. E2E guidanceAdvisory only. E2E / PR Gate selects and runs jobs independently. Recommended E2E: This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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/e2e.yaml:
- Line 349: Update the selector gate in the workflow condition to derive from
the compatibility contract represented by RETIRED_CONTROLLER_SELECTOR_IDS and
the planner, rather than duplicating the six job IDs. Expose planner output for
compatibility selection or add deterministic validation that fails when this
condition diverges from the source contract, ensuring retired selectors always
trigger the job.
In `@tools/e2e/retired-selector-compatibility.mts`:
- Around line 138-152: Update the default runCommand helper and its invocation
within runRetiredSelectorCompatibility to accept and forward the provided
environment, using it as the spawnSync env instead of process.env. Thread
environment through the options.runCommand override call while preserving the
existing command execution and error handling behavior.
🪄 Autofix (Beta)
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: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 6c475694-617e-41a4-9294-56a43d347007
📒 Files selected for processing (7)
.github/workflows/e2e.yamltest/e2e/support/retired-selector-compatibility.test.tstest/e2e/support/workflow-plan.test.tstools/e2e/prepare-e2e-workflow-boundary.mtstools/e2e/retired-selector-compatibility.mtstools/e2e/upload-e2e-artifacts-workflow-boundary.mtstools/e2e/workflow-plan.mts
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Summary
PR #7625 correctly retired six local-only E2E scenarios, but the trusted controller on
maincan still dispatch those retired selector IDs while a candidate workflow is taking over. This adds a fail-closed transition bridge: the candidate runs the ordinary replacement tests once and emits controller-bound evidence for each retired selector while the remaining live jobs continue.Related Issue
Follow-up to #7625 and #7616
Parent: #7614
Changes
e2e.yamlworkflow invoked by the controller onmain.main; restoring the retired live jobs would reintroduce the cost this migration removes.Type of Change
Quality Gates
Documentation Writer Review
no-docs-neededdocs/,README.md,CONTRIBUTING.md, andtest/e2e/README.md; existing guidance already covers controller planning, SHA-bound checkout, protected approval, and evidence validation without promising transient selector IDs./root/documentation_writer_review)DGX Station Hardware Evidence
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailablenpm run build:cliandnpm run check:diffpassed.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result:npm testwas attempted on the original PR head and reproduced three unchanged DGX Station host-detection fixture failures plus one unchanged root-topology fixture failure, then stopped making progress and was interrupted. GitHub CI will provide hosted aggregate evidence for the updated head.npm run docsbuilds without warnings (doc changes only)Signed-off-by: Carlos Villela cvillela@nvidia.com
Summary by CodeRabbit