Skip to content

ci(e2e): route shared jobs to NVIDIA endpoints - #5698

Merged
cv merged 13 commits into
mainfrom
fix/e2e-shared-nvidia-endpoint
Jun 26, 2026
Merged

ci(e2e): route shared jobs to NVIDIA endpoints#5698
cv merged 13 commits into
mainfrom
fix/e2e-shared-nvidia-endpoint

Conversation

@jyaunches

@jyaunches jyaunches commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add an explicit reusable workflow input, inference_route, for e2e-script.yaml.
  • Keep the default route unchanged: hosted-custom.
  • Convert selected Group B timeout jobs to inference_route: nvidia-internal as an auditable opt-in label.
  • Keep NVIDIA_API_KEY out of the reusable workflow contract; both hosted labels use NVIDIA_INFERENCE_API_KEY and COMPATIBLE_API_KEY for the hosted-compatible internal endpoint.

Converted Group B jobs

  • messaging-providers-e2e
  • channels-add-remove-e2e
  • channels-stop-start-openclaw-e2e
  • channels-stop-start-hermes-e2e
  • hermes-discord-e2e
  • upgrade-stale-sandbox-e2e
  • rebuild-hermes-e2e
  • rebuild-hermes-stale-base-e2e

Intentionally not converted

  • common-egress-agent-e2e stays on the existing default route for now because its original post-revert failure was exit 124 / empty agent reply, not the hosted setup timeout or public-endpoint quota signature.

Routing behavior

  • hosted-custom remains the default legacy route.
  • nvidia-internal is intentionally equivalent to hosted-custom at runtime, but lets changed jobs opt in explicitly so reviewers can see which jobs moved away from the rejected public NVIDIA Endpoints/Build route.
  • Both labels export:
    • NVIDIA_INFERENCE_API_KEY from secrets.NVIDIA_INFERENCE_API_KEY
    • NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1
    • NEMOCLAW_PROVIDER=custom
    • NEMOCLAW_ENDPOINT_URL=https://inference-api.nvidia.com/v1
    • NEMOCLAW_MODEL=nvidia/nvidia/nemotron-3-super-v3
    • NEMOCLAW_COMPAT_MODEL=nvidia/nvidia/nemotron-3-super-v3
    • NEMOCLAW_PREFERRED_API=openai-completions
    • COMPATIBLE_API_KEY
  • Unsupported inference_route values fail closed without echoing raw caller input.
  • Hosted inference secrets are rejected before GITHUB_ENV export if they contain CR/LF.

Validation

  • npx biome check --write .github/workflows/e2e-script.yaml test/e2e-script-workflow.test.ts
  • git diff --check
  • npm test -- test/e2e-script-workflow.test.ts test/e2e-scenario/support-tests/hosted-inference.test.ts
  • npm run typecheck:cli
  • npm run source-shape:check

E2E status

  • Public NVIDIA Endpoints/Build route was rejected after run 28065470733 hit HTTP 429.
  • Internal route first failed with HTTP 401 on model nvidia/nemotron-3-super-v3; cloud-onboard-e2e proved the hosted internal service accepts the legacy nvidia/nvidia/nemotron-3-super-v3 alias.
  • Latest head still needs required nightly E2E rerun after PR CI/advisors are green.

@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The reusable E2E script runner gains a unified "Export CI inference environment" step that branches on inference_route between hosted-custom and nvidia-build credential paths. NVIDIA_API_KEY is declared as a new reusable-workflow secret. Nightly jobs receive explicit inference_route: nvidia-build and NEMOCLAW_MODEL env fields. The compatible inference shim endpoint is updated to integrate.api.nvidia.com/v1, and contract tests cover the new routing logic and secret expectations.

Changes

NVIDIA Inference Credential Routing for E2E CI

Layer / File(s) Summary
Reusable workflow interface and unified export step
.github/workflows/e2e-script.yaml
Rewords nvidia_api_key input description, adds inference_route input (default hosted-custom), declares NVIDIA_API_KEY as a new optional reusable-workflow secret, replaces the hosted-only export step with a unified step that branches on inference_route and validates/exports build vs hosted credentials into $GITHUB_ENV, and removes the now-redundant direct NVIDIA_INFERENCE_API_KEY pass-through from the run step.
Nightly E2E job hosted-inference routing and secret wiring
.github/workflows/nightly-e2e.yaml
Updates eight E2E jobs (messaging-providers-e2e, channels-add-remove-e2e, channels-stop-start-openclaw-e2e, channels-stop-start-hermes-e2e, hermes-discord-e2e, upgrade-stale-sandbox-e2e, rebuild-hermes-e2e, rebuild-hermes-stale-base-e2e) to add inference_route: nvidia-build, extend env_json with NEMOCLAW_MODEL, and switch secrets from NVIDIA_INFERENCE_API_KEY to NVIDIA_API_KEY or use the new nightly-e2e-nvidia-build-secrets bundle.
Compatible inference shim endpoint constant
test/e2e/lib/ci-compatible-inference.sh
Introduces NEMOCLAW_E2E_NVIDIA_INFERENCE_ENDPOINT_DEFAULT pointing to integrate.api.nvidia.com/v1, updates the shim header comment, and changes nemoclaw_e2e_hosted_inference_base_url() to use the constant instead of a hardcoded URL.
Contract tests for routing logic and endpoint update
test/e2e-script-workflow.test.ts, test/e2e-scenario/support-tests/hosted-inference.test.ts
Adds RAW_PUBLIC_NVIDIA_SECRET constant, introduces runInferenceExportStep() helper to execute and parse Bash export scripts, updates the reusable-nightly-jobs secrets test to partition NVIDIA-build jobs and apply conditional NVIDIA_API_KEY expectations, adds a comprehensive new routing contract test that validates step gating, env assignments, script branching, and per-job env_json provider/model requirements for nvidia_api_key=true jobs, and updates the nvapi cloud routes reachability probe test to target integrate.api.nvidia.com/v1.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#5600: Directly modifies the same e2e-script.yaml inference export step and its tests, making the hosted inference setup a close predecessor to this PR's unified routing logic.

Suggested reviewers

  • cv

Poem

🐰 Hop, hop! The inference routes now split in two,
A build|hosted branch—credentials ring true.
integrate.api.nvidia.com leads the way,
Each nightly job configured for the fray.
With tests asserting every env var's place,
This rabbit deploys with confident grace! 🚀

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main objective of the PR: routing shared CI/CD E2E jobs to NVIDIA endpoints through the introduction of an explicit inference_route parameter.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/e2e-shared-nvidia-endpoint

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

@github-code-quality

github-code-quality Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in the fix/e2e-shared-nvidi... branch is 96%. Coverage data for the main branch is not yet available.

Show a code coverage summary of the most covered files.
File main fix/e2e-shared-nvidi... 7196b2e +/-
nemoclaw/src/se...cret-scanner.ts 100%
nemoclaw/src/commands/slash.ts 100%
nemoclaw/src/li...bprocess-env.ts 100%
nemoclaw/src/bl...eprint/state.ts 98%
nemoclaw/src/onboard/config.ts 98%
nemoclaw/src/bl...int/snapshot.ts 97%
nemoclaw/src/bl...print/runner.ts 95%
nemoclaw/src/co...ration-state.ts 94%
nemoclaw/src/bl...ate-networks.ts 94%
nemoclaw/src/index.ts 94%

TypeScript / code-coverage/cli

The overall coverage in the fix/e2e-shared-nvidi... branch is 47%. Coverage data for the main branch is not yet available.

Show a code coverage summary of the most covered files.
File main fix/e2e-shared-nvidi... 7196b2e +/-
src/lib/state/o...oard-session.ts 91%
src/lib/actions...dbox/rebuild.ts 72%
src/lib/sandbox/config.ts 72%
src/lib/onboard/preflight.ts 62%
src/lib/shields/index.ts 62%
src/lib/actions...licy-channel.ts 60%
src/lib/state/sandbox.ts 56%
src/lib/policy/index.ts 49%
src/lib/onboard...er-gpu-patch.ts 47%
src/lib/onboard.ts 19%

Updated June 26, 2026 05:26 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: cloud-onboard-e2e, channels-add-remove-e2e, messaging-providers-e2e
Optional E2E: rebuild-hermes-e2e, upgrade-stale-sandbox-e2e, hermes-discord-e2e

Dispatch hint: cloud-onboard-e2e,channels-add-remove-e2e,messaging-providers-e2e

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • cloud-onboard-e2e (high): Validates the default hosted-custom path through the reusable e2e-script workflow with nvidia_api_key enabled, including hosted-compatible inference env export during a full hosted onboarding flow.
  • channels-add-remove-e2e (high): Exercises one of the jobs newly moved to inference_route: nvidia-internal and the new nightly-e2e-internal-inference-secrets anchor, while covering a real channel lifecycle flow that depends on the reusable inference export.
  • messaging-providers-e2e (high): Covers another newly routed nvidia-internal job with messaging provider credentials and live-secret gating, validating that the modified reusable workflow still passes inference and provider-related environment correctly.

Optional E2E

  • rebuild-hermes-e2e (high): Useful additional confidence for the new nvidia-internal route on a Hermes rebuild flow using the new guarded secrets anchor.
  • upgrade-stale-sandbox-e2e (high): Useful adjacent coverage for one of the migrated jobs where stale sandbox upgrade relies on the reusable inference environment and the new internal-route label.
  • hermes-discord-e2e (high): Optional Hermes messaging-provider coverage for a migrated nvidia-internal route job using the shared guarded secret anchor.

New E2E recommendations

  • None.

Dispatch hint

  • Workflow: .github/workflows/nightly-e2e.yaml
  • jobs input: cloud-onboard-e2e,channels-add-remove-e2e,messaging-providers-e2e

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Recommendation

Required Vitest E2E scenarios: None
Optional Vitest E2E scenarios: None

Workflow run

Full Vitest E2E advisor summary

Vitest E2E Scenario Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required Vitest E2E scenarios

  • None. No Vitest scenario dispatch is required: this PR changes the legacy reusable script/nightly E2E workflow wiring and its workflow contract test, not .github/workflows/e2e-vitest-scenarios.yaml, test/e2e-scenario/, or shared Vitest scenario machinery.

Optional Vitest E2E scenarios

  • None.

Relevant changed files

  • None.

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings

Merge posture: No blocking advisor findings
Primary next action: Add or justify PRA-T1 and any related test follow-ups.
Open items: 0 required · 0 warnings · 0 suggestions · 3 test follow-ups
Since last review: 0 prior items resolved · 3 still apply · 0 new items found

Action checklist

  • PRA-T1 Add or justify test follow-up: Runtime validation
  • PRA-T2 Add or justify test follow-up: Runtime validation
  • PRA-T3 Add or justify test follow-up: Runtime validation
Test follow-ups to resolve or justify

If these cover changed behavior, prefer adding them in this PR; otherwise state why existing coverage is enough or link the follow-up.

  • PRA-T1 Runtime validation — Runtime validation: one nvidia-internal reusable job receives NVIDIA_INFERENCE_API_KEY and COMPATIBLE_API_KEY from GITHUB_ENV, does not receive NVIDIA_API_KEY, and sees https://inference-api.nvidia.com/v1 with model nvidia/nvidia/nemotron-3-ultra in the target script environment.. Static coverage is strong and directly executes the changed bash export body, but the changed behavior ultimately depends on GitHub Actions reusable workflow secret forwarding, GITHUB_ENV propagation into the composite action, target-ref secret withholding, and real target script environment propagation.
  • PRA-T2 Runtime validation — Runtime validation: one default hosted-custom reusable job still receives the hosted-compatible environment and does not receive NVIDIA_API_KEY.. Static coverage is strong and directly executes the changed bash export body, but the changed behavior ultimately depends on GitHub Actions reusable workflow secret forwarding, GITHUB_ENV propagation into the composite action, target-ref secret withholding, and real target script environment propagation.
  • PRA-T3 Runtime validation — Runtime validation: workflow_dispatch with an explicit target_ref for a converted nvidia-internal job withholds NVIDIA_INFERENCE_API_KEY and fails in the export step before the target-ref E2E script runs.. Static coverage is strong and directly executes the changed bash export body, but the changed behavior ultimately depends on GitHub Actions reusable workflow secret forwarding, GITHUB_ENV propagation into the composite action, target-ref secret withholding, and real target script environment propagation.

Workflow run details

This is an automated, non-binding review; it still expects maintainers and agents to respond to each required or warning item. Treat suggestions as current-PR improvements when they touch changed code; defer only with maintainer rationale or a linked follow-up. A human maintainer must make the final merge decision.

@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: 1

🤖 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/e2e-script-workflow.test.ts`:
- Around line 914-936: The workflowCall variable is missing the secrets property
in its type definition, causing a type error when asserting on
workflowCall?.secrets?.NVIDIA_API_KEY. Update the type definition for the
workflow_call contract (from either runnerWorkflow.on?.workflow_call or
runnerWorkflow.true?.workflow_call) to include a secrets property with the
appropriate structure, or cast workflowCall to a type that includes the secrets
property so the assertion on line 936 will compile.
🪄 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: 16903b86-ef60-4d98-836f-726adfa2839d

📥 Commits

Reviewing files that changed from the base of the PR and between 9ad9b5d and b6ad81f.

📒 Files selected for processing (5)
  • .github/workflows/e2e-script.yaml
  • .github/workflows/nightly-e2e.yaml
  • test/e2e-scenario/support-tests/hosted-inference.test.ts
  • test/e2e-script-workflow.test.ts
  • test/e2e/lib/ci-compatible-inference.sh

Comment thread test/e2e-script-workflow.test.ts Outdated
@cv cv added the v0.0.67 label Jun 23, 2026
@jyaunches

Copy link
Copy Markdown
Contributor Author

Updated for the review feedback:

  • added explicit inference_route: hosted-custom | nvidia-build;
  • kept hosted-custom as default;
  • removed implicit NEMOCLAW_PROVIDER=cloud route selection from job env_json;
  • excluded common-egress-agent-e2e from this conversion;
  • made Build route fail closed to secrets.NVIDIA_API_KEY only;
  • added behavior-style contract coverage that executes the export shell step and asserts hosted vs Build env outputs.

@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: 1

🤖 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/e2e-script-workflow.test.ts`:
- Around line 445-453: The `nvidiaBuildJobs` set is missing
`messaging-providers-e2e` even though this job is treated as an NVIDIA-build job
for secrets handling at line 468 with `nvidiaBuildSecrets`. This inconsistency
causes the routing assertions (around lines 1037-1043) to skip validation of
`inference_route` for that job, creating incomplete test coverage. Add
`messaging-providers-e2e` to the `nvidiaBuildJobs` set to align its
classification across both the secrets and routing validation logic.
🪄 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: 144fdc78-0fc9-49b9-bf44-0656867afc64

📥 Commits

Reviewing files that changed from the base of the PR and between b6ad81f and 36a00a2.

📒 Files selected for processing (3)
  • .github/workflows/e2e-script.yaml
  • .github/workflows/nightly-e2e.yaml
  • test/e2e-script-workflow.test.ts

Comment thread test/e2e-script-workflow.test.ts Outdated

@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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
test/e2e/lib/ci-compatible-inference.sh (1)

31-47: 🗄️ Data Integrity & Integration | 🟠 Major

Clarify intent of two different endpoint domains across compatible and non-compatible inference modes.

Line 42 hardcodes the endpoint to https://inference-api.nvidia.com/v1 for compatible inference mode, while the new constant NEMOCLAW_E2E_NVIDIA_INFERENCE_ENDPOINT_DEFAULT (line 16) uses https://integrate.api.nvidia.com/v1 for non-compatible mode. The function nemoclaw_e2e_hosted_inference_base_url() (lines 53–59) reflects this split: it returns the compatible-mode endpoint when compatible inference is enabled (line 55) and the new constant otherwise (line 57).

Confirm whether:

  1. Using different endpoints for compatible vs. non-compatible modes is intentional
  2. If both should use the same endpoint, line 42 should reference the constant for consistency
🤖 Prompt for 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.

In `@test/e2e/lib/ci-compatible-inference.sh` around lines 31 - 47, Review the
endpoint URL configuration in the nemoclaw_e2e_configure_compatible_inference
function where NEMOCLAW_ENDPOINT_URL is hardcoded to
https://inference-api.nvidia.com/v1 on line 42, and compare it against the
NEMOCLAW_E2E_NVIDIA_INFERENCE_ENDPOINT_DEFAULT constant defined at line 16 which
uses https://integrate.api.nvidia.com/v1. Determine whether these endpoints
should be the same or intentionally different. If they should be the same,
replace the hardcoded URL on line 42 with a reference to the constant for
consistency. If they are intentionally different, add a clear comment above line
42 explaining why the compatible inference mode uses a different endpoint from
the non-compatible mode.
🤖 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.

Outside diff comments:
In `@test/e2e/lib/ci-compatible-inference.sh`:
- Around line 31-47: Review the endpoint URL configuration in the
nemoclaw_e2e_configure_compatible_inference function where NEMOCLAW_ENDPOINT_URL
is hardcoded to https://inference-api.nvidia.com/v1 on line 42, and compare it
against the NEMOCLAW_E2E_NVIDIA_INFERENCE_ENDPOINT_DEFAULT constant defined at
line 16 which uses https://integrate.api.nvidia.com/v1. Determine whether these
endpoints should be the same or intentionally different. If they should be the
same, replace the hardcoded URL on line 42 with a reference to the constant for
consistency. If they are intentionally different, add a clear comment above line
42 explaining why the compatible inference mode uses a different endpoint from
the non-compatible mode.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 9a931737-f096-49a2-a31f-15558cd621b8

📥 Commits

Reviewing files that changed from the base of the PR and between a621ad3 and 966ded5.

📒 Files selected for processing (3)
  • .github/workflows/e2e-script.yaml
  • test/e2e-script-workflow.test.ts
  • test/e2e/lib/ci-compatible-inference.sh
🚧 Files skipped from review as they are similar to previous changes (2)
  • .github/workflows/e2e-script.yaml
  • test/e2e-script-workflow.test.ts

@github-actions

Copy link
Copy Markdown
Contributor

Selective E2E Results — ❌ Some jobs failed

Run: 28065470733
Target ref: fix/e2e-shared-nvidia-endpoint
Requested jobs: cloud-onboard-e2e,cloud-inference-e2e,messaging-providers-e2e,channels-add-remove-e2e,rebuild-hermes-e2e,channels-stop-start-openclaw-e2e,channels-stop-start-hermes-e2e,hermes-discord-e2e,upgrade-stale-sandbox-e2e,rebuild-hermes-stale-base-e2e
Summary: 4 passed, 4 failed, 2 cancelled, 0 skipped

Job Result
channels-add-remove-e2e ⚠️ cancelled
channels-stop-start-hermes-e2e ❌ failure
channels-stop-start-openclaw-e2e ⚠️ cancelled
cloud-inference-e2e ✅ success
cloud-onboard-e2e ✅ success
hermes-discord-e2e ✅ success
messaging-providers-e2e ❌ failure
rebuild-hermes-e2e ❌ failure
rebuild-hermes-stale-base-e2e ✅ success
upgrade-stale-sandbox-e2e ❌ failure

Failed jobs: channels-stop-start-hermes-e2e, messaging-providers-e2e, rebuild-hermes-e2e, upgrade-stale-sandbox-e2e. Check run artifacts for logs.

Comment thread test/e2e-script-workflow.test.ts Fixed
Comment thread test/e2e-script-workflow.test.ts Fixed
@github-actions

Copy link
Copy Markdown
Contributor

Selective E2E Results — ❌ Some jobs failed

Run: 28066992295
Target ref: fix/e2e-shared-nvidia-endpoint
Requested jobs: cloud-onboard-e2e,messaging-providers-e2e,channels-add-remove-e2e,channels-stop-start-openclaw-e2e,channels-stop-start-hermes-e2e,hermes-discord-e2e,upgrade-stale-sandbox-e2e,rebuild-hermes-e2e,rebuild-hermes-stale-base-e2e
Summary: 1 passed, 8 failed, 0 cancelled, 0 skipped

Job Result
channels-add-remove-e2e ❌ failure
channels-stop-start-hermes-e2e ❌ failure
channels-stop-start-openclaw-e2e ❌ failure
cloud-onboard-e2e ✅ success
hermes-discord-e2e ❌ failure
messaging-providers-e2e ❌ failure
rebuild-hermes-e2e ❌ failure
rebuild-hermes-stale-base-e2e ❌ failure
upgrade-stale-sandbox-e2e ❌ failure

Failed jobs: channels-add-remove-e2e, channels-stop-start-hermes-e2e, channels-stop-start-openclaw-e2e, hermes-discord-e2e, messaging-providers-e2e, rebuild-hermes-e2e, rebuild-hermes-stale-base-e2e, upgrade-stale-sandbox-e2e. Check run artifacts for logs.

@github-actions

Copy link
Copy Markdown
Contributor

Selective E2E Results — ✅ All requested jobs passed

Run: 28068414918
Target ref: fix/e2e-shared-nvidia-endpoint
Requested jobs: cloud-onboard-e2e,messaging-providers-e2e,channels-add-remove-e2e
Summary: 3 passed, 0 failed, 0 cancelled, 0 skipped

Job Result
channels-add-remove-e2e ✅ success
cloud-onboard-e2e ✅ success
messaging-providers-e2e ✅ success

@jyaunches jyaunches added v0.0.68 and removed v0.0.67 labels Jun 24, 2026
@wscurran wscurran added area: ci CI workflows, checks, release automation, or GitHub Actions area: e2e End-to-end tests, nightly failures, or validation infrastructure chore Build, CI, dependency, or tooling maintenance labels Jun 24, 2026
@cjagwani cjagwani self-assigned this Jun 24, 2026

@cjagwani cjagwani left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Hey @jyaunches, this looks clean: advisor merge_as_is, CodeRabbit clear, latest selective E2E passed. Can you merge main to clear the dirty state, then re-trigger the nightly E2E? Once that's green we can merge

@jyaunches jyaunches added v0.0.69 and removed v0.0.68 labels Jun 25, 2026
@cv
cv merged commit 152e854 into main Jun 26, 2026
40 checks passed
@cv
cv deleted the fix/e2e-shared-nvidia-endpoint branch June 26, 2026 05:44
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
## Summary
- Add an explicit reusable workflow input, `inference_route`, for
`e2e-script.yaml`.
- Keep the default route unchanged: `hosted-custom`.
- Convert selected Group B timeout jobs to `inference_route:
nvidia-internal` as an auditable opt-in label.
- Keep `NVIDIA_API_KEY` out of the reusable workflow contract; both
hosted labels use `NVIDIA_INFERENCE_API_KEY` and `COMPATIBLE_API_KEY`
for the hosted-compatible internal endpoint.

## Converted Group B jobs
- `messaging-providers-e2e`
- `channels-add-remove-e2e`
- `channels-stop-start-openclaw-e2e`
- `channels-stop-start-hermes-e2e`
- `hermes-discord-e2e`
- `upgrade-stale-sandbox-e2e`
- `rebuild-hermes-e2e`
- `rebuild-hermes-stale-base-e2e`

## Intentionally not converted
- `common-egress-agent-e2e` stays on the existing default route for now
because its original post-revert failure was `exit 124` / empty agent
reply, not the hosted setup timeout or public-endpoint quota signature.

## Routing behavior
- `hosted-custom` remains the default legacy route.
- `nvidia-internal` is intentionally equivalent to `hosted-custom` at
runtime, but lets changed jobs opt in explicitly so reviewers can see
which jobs moved away from the rejected public NVIDIA Endpoints/Build
route.
- Both labels export:
  - `NVIDIA_INFERENCE_API_KEY` from `secrets.NVIDIA_INFERENCE_API_KEY`
  - `NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1`
  - `NEMOCLAW_PROVIDER=custom`
  - `NEMOCLAW_ENDPOINT_URL=https://inference-api.nvidia.com/v1`
  - `NEMOCLAW_MODEL=nvidia/nvidia/nemotron-3-super-v3`
  - `NEMOCLAW_COMPAT_MODEL=nvidia/nvidia/nemotron-3-super-v3`
  - `NEMOCLAW_PREFERRED_API=openai-completions`
  - `COMPATIBLE_API_KEY`
- Unsupported `inference_route` values fail closed without echoing raw
caller input.
- Hosted inference secrets are rejected before `GITHUB_ENV` export if
they contain CR/LF.

## Validation
- `npx biome check --write .github/workflows/e2e-script.yaml
test/e2e-script-workflow.test.ts`
- `git diff --check`
- `npm test -- test/e2e-script-workflow.test.ts
test/e2e-scenario/support-tests/hosted-inference.test.ts`
- `npm run typecheck:cli`
- `npm run source-shape:check`

## E2E status
- Public NVIDIA Endpoints/Build route was rejected after run
`28065470733` hit HTTP 429.
- Internal route first failed with HTTP 401 on model
`nvidia/nemotron-3-super-v3`; `cloud-onboard-e2e` proved the hosted
internal service accepts the legacy `nvidia/nvidia/nemotron-3-super-v3`
alias.
- Latest head still needs required nightly E2E rerun after PR
CI/advisors are green.

---------

Co-authored-by: Carlos Villela <cvillela@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci CI workflows, checks, release automation, or GitHub Actions area: e2e End-to-end tests, nightly failures, or validation infrastructure chore Build, CI, dependency, or tooling maintenance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants