Commit 9e02478
test(e2e): add GPU double-onboard E2E + migrate GPU jobs to NVKS runners (NVIDIA#2606) (NVIDIA#2617)
## Summary
Add `test-gpu-double-onboard.sh` that reproduces the exact scenario from
NVIDIA#2553: re-onboard with `NEMOCLAW_PROVIDER=ollama` must not leave the
proxy running with a different token than what's persisted to disk.
### What the test covers
The exact reproduction scenario from NVIDIA#2553:
1. Full non-interactive onboard with `NEMOCLAW_PROVIDER=ollama`
2. Verify proxy running, token persisted, inference works
3. Re-onboard (second onboard, same sandbox with
`NEMOCLAW_RECREATE_SANDBOX=1`)
4. **Token consistency**: file token matches what the running proxy
accepts (not 401)
5. Inference through sandbox still works after re-onboard
### NVKS runner migration
Both `gpu-e2e` (existing) and `gpu-double-onboard-e2e` (new) are moved
from the never-enabled `self-hosted` runner to NVKS ephemeral GPU
runners (`linux-amd64-gpu-l40g-latest-1` — L40G, 48 GB VRAM):
- **Removes `GPU_E2E_ENABLED` gate** — the variable was never set, so
`gpu-e2e` has been silently skipped every nightly since it was added on
March 25
- **Eliminates `needs: gpu-e2e` serialization** — separate ephemeral
VMs, no shared state
- **Drops timeout from 60 to 30 min** — fresh VM each run, no stale
state cleanup, auto-selected model is `qwen2.5:7b` (4.4 GB pull)
- **Enables GPU E2E coverage in nightly for the first time**
### Testing
The nightly workflow only triggers on `schedule` and
`workflow_dispatch`. To validate before merge, run the workflow manually
from this branch.
Closes NVIDIA#2606
### Related
- NVIDIA#2553 — The bug (ollama proxy token divergence)
- NVIDIA#2555 — The fix (restart proxy when token diverges)
- NVIDIA#839 — Original gpu-e2e addition (never enabled)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Chores**
* GPU nightly E2E workflow now runs unconditionally on ephemeral GPU
runners with a shorter timeout and improved failure reporting that
surfaces the new double-onboard job.
* **Tests**
* Added a comprehensive GPU E2E that verifies double-onboard behavior,
proxy token persistence and acceptance/rejection, end-to-end inference,
and sandbox cleanup.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->1 parent 11fcd00 commit 9e02478
2 files changed
Lines changed: 635 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | | - | |
20 | | - | |
| 18 | + | |
| 19 | + | |
21 | 20 | | |
22 | 21 | | |
23 | 22 | | |
| |||
545 | 544 | | |
546 | 545 | | |
547 | 546 | | |
548 | | - | |
549 | | - | |
550 | | - | |
551 | | - | |
552 | | - | |
| 547 | + | |
| 548 | + | |
553 | 549 | | |
554 | | - | |
555 | | - | |
556 | | - | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
557 | 553 | | |
558 | 554 | | |
559 | 555 | | |
| |||
594 | 590 | | |
595 | 591 | | |
596 | 592 | | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
597 | 649 | | |
598 | 650 | | |
599 | 651 | | |
| |||
616 | 668 | | |
617 | 669 | | |
618 | 670 | | |
| 671 | + | |
619 | 672 | | |
620 | 673 | | |
621 | 674 | | |
| |||
0 commit comments