Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
48a0456
ci: Exercise Quick Start workflow on GPU runner
arussell-nvidia Jul 14, 2026
b256827
ci: avoid Quick Start E2E port collisions
arussell-nvidia Jul 14, 2026
7eb0b3f
fix: keep WSS proxy backend on CloudXR runtime port
arussell-nvidia Jul 14, 2026
85be58c
fix: stream quick start CloudXR readiness logs
arussell-nvidia Jul 14, 2026
fd0afdf
fix: reuse sourced CloudXR runtime
arussell-nvidia Jul 18, 2026
6678c06
fix: restore USB backend default port
arussell-nvidia Jul 14, 2026
ff8db36
test: add Quick Start client validation probe
arussell-nvidia Jul 18, 2026
c62ba43
test: use hosted desktop client for Quick Start probe
arussell-nvidia Jul 18, 2026
934bdb2
Route OOB client config into hosted validation
arussell-nvidia Jul 16, 2026
e6cb4b2
Enable software WebGL for Quick Start client probe
arussell-nvidia Jul 16, 2026
ad9957f
Start Quick Start client with CDP user gesture
arussell-nvidia Jul 16, 2026
7a9291a
Autostart hosted Quick Start client validation
arussell-nvidia Jul 16, 2026
160f79b
Retry hosted Quick Start client autostart
arussell-nvidia Jul 16, 2026
ad1d5cb
Use minimal XR features for hosted client validation
arussell-nvidia Jul 16, 2026
f815e17
Use local reference space for hosted client validation
arussell-nvidia Jul 16, 2026
8cd72a5
Force IWER for hosted client validation
arussell-nvidia Jul 16, 2026
88fe376
Recreate XR store after IWER loads
arussell-nvidia Jul 16, 2026
ffbc322
Preload IWER before client app bootstrap
arussell-nvidia Jul 16, 2026
8bb3752
Harden hosted IWER session diagnostics
arussell-nvidia Jul 16, 2026
ef34e22
ci: add Quick Start Isaac Lab validation hook
arussell-nvidia Jul 18, 2026
12706a0
style: format Quick Start launcher tests
arussell-nvidia Jul 18, 2026
fecbfb2
test: align launcher WSS error wording
arussell-nvidia Jul 18, 2026
c912e25
ci: limit Ubuntu workflow token permissions
arussell-nvidia Jul 18, 2026
e191a53
Merge remote-tracking branch 'origin/main' into codex/cxr-3577-quicks…
arussell-nvidia Jul 21, 2026
74169b9
Merge current main into Quick Start validation
arussell-nvidia Jul 22, 2026
23eef1d
Fix Quick Start review findings
arussell-nvidia Jul 22, 2026
069bb07
Format Quick Start launcher tests
arussell-nvidia Jul 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
159 changes: 159 additions & 0 deletions .github/workflows/build-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

permissions:
contents: read

env:
# Shared apt build dependencies. Each job installs these plus its own extras
# (ccache, clang-format, the OAK camera autotools chain).
Expand Down Expand Up @@ -526,6 +529,160 @@ jobs:
# Run tests with CloudXR runtime
./scripts/run_tests_with_cloudxr.sh --python-version ${{ matrix.python_version }}

test-quick-start-e2e:
# Runs the documented Quick Start workflow against the candidate wheel on a
# GPU runner: install package, launch CloudXR, source the generated env, run
# the documented gripper retargeting example, and upload the logs/summary.
runs-on: [self-hosted, linux, gpu, x64]
needs: build-ubuntu
timeout-minutes: 30

steps:
- name: Checkout code
uses: actions/checkout@v6
with:
submodules: recursive

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.11'

- name: Download isaacteleop wheel (x64, py3.11)
uses: actions/download-artifact@v7
with:
name: isaacteleop-wheels-x64-py3.11
path: quick-start-wheels

- name: Run Quick Start E2E workflow
env:
CI: true
QUICK_START_E2E_REQUIRE_WHEEL: "1"
QUICK_START_E2E_WHEEL_DIR: quick-start-wheels
QUICK_START_E2E_ARTIFACT_DIR: ${{ runner.temp }}/isaacteleop-quick-start-e2e
run: ./scripts/run_quick_start_e2e.sh

- name: Upload Quick Start E2E artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v6
with:
name: quick-start-e2e-x64-py3.11
path: |
${{ runner.temp }}/isaacteleop-quick-start-e2e/*.log
${{ runner.temp }}/isaacteleop-quick-start-e2e/*.json
${{ runner.temp }}/isaacteleop-quick-start-e2e/cloudxr/run/cloudxr.env
${{ runner.temp }}/isaacteleop-quick-start-e2e/cloudxr/logs/**/*.log
if-no-files-found: warn
retention-days: 7

test-quick-start-client-e2e:
Comment thread
github-advanced-security[bot] marked this conversation as resolved.
Fixed
# Follow-up Quick Start validation: launch the locally hosted desktop/IWER
# client in a Chromium browser, click CONNECT, and require server-side OOB
# state to report a connected streaming client.
runs-on: [self-hosted, linux, gpu, x64]
needs: build-ubuntu
timeout-minutes: 35

steps:
- name: Checkout code
uses: actions/checkout@v6
with:
submodules: recursive

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.11'

- name: Download isaacteleop wheel (x64, py3.11)
uses: actions/download-artifact@v7
with:
name: isaacteleop-wheels-x64-py3.11
path: quick-start-wheels

- name: Build hosted desktop web client
uses: ./.github/actions/build-cloudxr-web-client
with:
ngc-api-key: ${{ secrets.NGC_TELEOP_CORE_GITHUB_SERVICE_KEY }}

- name: Run Quick Start client E2E workflow
env:
CI: true
QUICK_START_E2E_REQUIRE_WHEEL: "1"
QUICK_START_E2E_VALIDATE_CLIENT: "1"
QUICK_START_E2E_WHEEL_DIR: quick-start-wheels
QUICK_START_E2E_ARTIFACT_DIR: ${{ runner.temp }}/isaacteleop-quick-start-client-e2e
TELEOP_WEB_CLIENT_STATIC_DIR: ${{ github.workspace }}/deps/cloudxr/webxr_client/build
run: ./scripts/run_quick_start_e2e.sh

- name: Upload Quick Start client E2E artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v6
with:
name: quick-start-client-e2e-x64-py3.11
path: |
${{ runner.temp }}/isaacteleop-quick-start-client-e2e/*.log
${{ runner.temp }}/isaacteleop-quick-start-client-e2e/*.json
${{ runner.temp }}/isaacteleop-quick-start-client-e2e/cloudxr/run/cloudxr.env
${{ runner.temp }}/isaacteleop-quick-start-client-e2e/cloudxr/logs/**/*.log
if-no-files-found: warn
retention-days: 7

test-quick-start-isaac-lab-e2e:
Comment thread
github-advanced-security[bot] marked this conversation as resolved.
Fixed
# Optional Quick Start next-step validation: use Isaac Lab as the
# application under test. This runs only on runners where the repo variable
# QUICK_START_ISAAC_LAB_ROOT points at a provisioned Isaac Lab checkout.
if: ${{ vars.QUICK_START_ISAAC_LAB_ROOT != '' }}
runs-on: [self-hosted, linux, gpu, x64]
needs:
- build-ubuntu
- test-quick-start-client-e2e
timeout-minutes: 45

steps:
- name: Checkout code
uses: actions/checkout@v6
with:
submodules: recursive

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.11'

- name: Download isaacteleop wheel (x64, py3.11)
uses: actions/download-artifact@v7
with:
name: isaacteleop-wheels-x64-py3.11
path: quick-start-wheels

- name: Build hosted desktop web client
uses: ./.github/actions/build-cloudxr-web-client
with:
ngc-api-key: ${{ secrets.NGC_TELEOP_CORE_GITHUB_SERVICE_KEY }}

- name: Run Quick Start Isaac Lab E2E workflow
env:
CI: true
QUICK_START_ISAAC_LAB_ROOT: ${{ vars.QUICK_START_ISAAC_LAB_ROOT }}
QUICK_START_ISAAC_LAB_WHEEL_DIR: quick-start-wheels
QUICK_START_ISAAC_LAB_ARTIFACT_DIR: ${{ runner.temp }}/isaacteleop-quick-start-isaac-lab-e2e
TELEOP_WEB_CLIENT_STATIC_DIR: ${{ github.workspace }}/deps/cloudxr/webxr_client/build
run: ./scripts/run_quick_start_isaac_lab_e2e.sh

- name: Upload Quick Start Isaac Lab E2E artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v6
with:
name: quick-start-isaac-lab-e2e-x64-py3.11
path: |
${{ runner.temp }}/isaacteleop-quick-start-isaac-lab-e2e/*.log
${{ runner.temp }}/isaacteleop-quick-start-isaac-lab-e2e/*.json
${{ runner.temp }}/isaacteleop-quick-start-isaac-lab-e2e/cloudxr/run/cloudxr.env
${{ runner.temp }}/isaacteleop-quick-start-isaac-lab-e2e/cloudxr/logs/**/*.log
if-no-files-found: warn
retention-days: 7

test-teleop-ros2:
runs-on: [self-hosted, linux, gpu, "${{ matrix.arch }}"]
needs: build-ubuntu
Expand Down Expand Up @@ -831,6 +988,8 @@ jobs:
- test-viz-gpu
- test-viz-sanitizers
- test-cloudxr
- test-quick-start-e2e
- test-quick-start-client-e2e
- test-teleop-ros2
if: ${{ always() }}

Expand Down
Loading
Loading