Skip to content

ci: remove full E2E PR merge gate - #8625

Merged
ericksoa merged 3 commits into
mainfrom
revert/full-e2e-pr-merge-gate
Aug 8, 2026
Merged

ci: remove full E2E PR merge gate#8625
ericksoa merged 3 commits into
mainfrom
revert/full-e2e-pr-merge-gate

Conversation

@ericksoa

@ericksoa ericksoa commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Restores the installer hash check to its installer-integrity scope. Pull requests no longer require the full default E2E matrix to complete before merge; targeted, protected, and release E2E workflows remain available independently.

Changes

  • Remove exact-head full E2E qualification from the base-trusted installer hash composite action.
  • Restore the installer hash workflow's read-only permission set, five-minute timeout, and narrow trusted checkout.
  • Replace the qualification-enforcement source-shape contract with one that rejects coupling installer verification to full E2E qualification.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification: Internal CI merge policy only; no user-facing product behavior or documented command changes.
  • Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging)
  • Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: Maintainer-directed rollback; focused workflow contracts and the full PR validation suite pass.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: no-docs-needed
  • Evidence: The diff changes only internal installer-hash CI policy and its regression contract. No user or contributor documentation describes the removed E2E coupling.
  • Agent: Codex Desktop

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit:
  • Station profile/scenario:
  • Result:
  • Supporting evidence:

Verification

  • PR description includes a Signed-off-by: line and every commit appears as Verified in GitHub
  • Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run validate:pr passed after refreshing origin/main when hooks were skipped or unavailable
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — npx vitest run --project integration test/openshell-e2e-qualification-workflow.test.ts test/pr-workflow-contract.test.ts test/openshell-e2e-qualification.test.ts --coverage=false (41 passed); npm run source-shape:check; npm run typecheck:cli; and Biome check passed.
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result:
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Signed-off-by: Aaron Erickson aerickson@nvidia.com

Summary by CodeRabbit

  • Security

    • Installer hash verification now runs independently from full end-to-end qualification.
    • Workflow access is limited to read-only repository contents.
    • Verification uses only the required trusted files, reducing unnecessary access.
  • Reliability

    • Installer verification now completes within a five-minute limit.
    • Validation confirms that only the required verification step runs.
    • Security checks more clearly distinguish installer verification from broader end-to-end testing.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@ericksoa ericksoa self-assigned this Aug 8, 2026
@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The installer hash workflow now uses read-only contents access, a five-minute timeout, and a minimal sparse checkout. OpenShell E2E qualification is removed. Contract tests verify installer hash independence and the updated security description.

Changes

Installer hash workflow isolation

Layer / File(s) Summary
Restrict installer hash workflow scope
.github/workflows/installer-hash-check.yaml
The workflow grants read-only contents access, reduces the timeout to five minutes, and retains only installer verification files in the sparse checkout.
Validate installer verification independence
test/openshell-e2e-qualification-workflow.test.ts, ci/source-shape-test-budget.json
The tests validate the required input, exact sparse paths, single installer hash step, and absence of OpenShell E2E qualification. The security contract description reflects this separation.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#8485: Decouples E2E qualification from release or installer verification workflows.
  • NVIDIA/NemoClaw#8583: Modifies OpenShell installer and E2E qualification workflows with contract tests.
  • NVIDIA/NemoClaw#8616: Hardens the installer hash verification workflow and its contract tests.

Suggested reviewers: cv

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: removing the full E2E workflow as a required pull request merge gate.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch revert/full-e2e-pr-merge-gate

Comment @coderabbitai help to get the list of available commands.

@github-code-quality

github-code-quality Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit 2ccf849 in the revert/full-e2e-pr-m... branch remains at 96%, unchanged from commit 7846127 in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit 2ccf849 in the revert/full-e2e-pr-m... branch remains at 81%, unchanged from commit 7846127 in the main branch.

Show a code coverage summary of the most impacted files.
File main 7846127 revert/full-e2e-pr-m... 2ccf849 +/-
src/lib/onboard...shared-state.ts 90% 73% -17%
src/lib/policy/...ateway-state.ts 73% 56% -17%
src/lib/onboard.../docker-spec.ts 74% 65% -9%
src/lib/onboard...strap/docker.ts 72% 64% -8%
src/lib/onboard...ne-authority.ts 91% 84% -7%
src/lib/onboard...cker-journal.ts 75% 70% -5%
src/lib/onboard...trap/adapter.ts 70% 68% -2%
src/lib/onboard...mo-lifecycle.ts 86% 84% -2%
src/lib/policy/index.ts 62% 63% +1%
src/lib/onboard...an-lifecycle.ts 79% 95% +16%

Updated August 08, 2026 16:28 UTC

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 `@test/openshell-e2e-qualification-workflow.test.ts`:
- Around line 31-45: Extend the workflow assertions around requiredWorkflowStep
and sparseCheckout to verify workflow.jobs["check-hash"]["timeout-minutes"]
equals 5, and assert the immutable bootstrap checkout’s sparse-checkout list
alongside the existing base-trusted list. Preserve exact path-list expectations
for both trusted checkout steps.
- Line 15: Expand the InstallerHashAction contract assertions to cover
check-hash.timeout-minutes and the immutable bootstrap checkout and sparse
paths, using the existing workflow validation patterns and preserving the
current installer hash checks.
🪄 Autofix

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: 1aee2332-5429-4300-be4c-6da9a35c8693

📥 Commits

Reviewing files that changed from the base of the PR and between fad771a and 11fccdc.

📒 Files selected for processing (4)
  • .github/actions/ci-installer-hash-check/action.yaml
  • .github/workflows/installer-hash-check.yaml
  • ci/source-shape-test-budget.json
  • test/openshell-e2e-qualification-workflow.test.ts
💤 Files with no reviewable changes (1)
  • .github/actions/ci-installer-hash-check/action.yaml

Comment thread test/openshell-e2e-qualification-workflow.test.ts
Comment thread test/openshell-e2e-qualification-workflow.test.ts
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings reported

Advisor assessment: No blocking advisor findings reported
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Model comparison: normalized findings match; normalized terminology decisions differ; normalized E2E selections match; severity counts match.
3 terminology differences from the second opinion

Advisory only. These are normalized differences from the primary terminology receipt.

  • installer verification at ci/source-shape-test-budget.json:591: selected only by the second-opinion lane as established.
  • full E2E at test/openshell-e2e-qualification-workflow.test.ts:29: selected only by the second-opinion lane as established.
  • E2E qualification at test/openshell-e2e-qualification-workflow.test.ts:30: selected only by the second-opinion lane as justified.

Second-opinion terminology and E2E selections are advisory. Live E2E does not run automatically for pull requests.

2 semantic terminology decisions

Terminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.

  • justified — full E2E qualification at test/openshell-e2e-qualification-workflow.test.ts:30: Keep this term. The modifier identifies the removed complete qualification.
  • justified — installer integrity verification at test/openshell-e2e-qualification-workflow.test.ts:29: Keep this term. It identifies the installer-hash control and its distinct evidence scope.

E2E guidance

Advisory only. A maintainer can dispatch the default E2E suite against this exact revision.

Recommended E2E: None

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@ericksoa
ericksoa merged commit a816474 into main Aug 8, 2026
78 of 83 checks passed
@ericksoa
ericksoa deleted the revert/full-e2e-pr-merge-gate branch August 8, 2026 16:28
@github-actions github-actions Bot added v0.0.105 v0.0.106 Release target labels Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v0.0.106 Release target

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants