Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
25 changes: 15 additions & 10 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -445,7 +445,7 @@ jobs:
test-k-expr: "not (multi_mesh_raycaster or newton_raycast or raycaster_sensor)"
warp-cache: restore
ovrtx-shader-cache: restore
test-jobs: "2"
test-jobs: "4"
result-file: "test-standalone-demos-kit-report.xml"
container-name: isaac-lab-standalone-demos-kit-test
omni-github-test-type: standalone-demo
Expand Down Expand Up @@ -479,7 +479,7 @@ jobs:
test-k-expr: "not (multi_mesh_raycaster or newton_raycast or raycaster_sensor)"
warp-cache: restore
ovrtx-shader-cache: restore
test-jobs: "2"
test-jobs: "4"
result-file: "test-standalone-demos-non-kit-report.xml"
container-name: isaac-lab-standalone-demos-non-kit-test
omni-github-test-type: standalone-demo
Expand Down Expand Up @@ -742,27 +742,27 @@ jobs:
exit 1
fi

# No contributed environment needs cuRobo, so this job uses the base image and
# does not wait for the cuRobo image build.
test-contrib-environments:
name: test-contrib-environments
runs-on: [self-hosted, gpu]
timeout-minutes: 120
continue-on-error: true
needs: [build-curobo, config]
needs: [build, config]
if: >-
github.event_name != 'push' &&
needs.build-curobo.result == 'success'
needs.build.result == 'success'
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
lfs: true
- uses: ./.github/actions/run-package-tests
with:
image-tag: ${{ needs.config.outputs.ci_image_tag }}-curobo
image-tag: ${{ needs.config.outputs.ci_image_tag }}
isaacsim-base-image: ${{ needs.config.outputs.isaacsim_image_name }}
isaacsim-version: ${{ needs.config.outputs.isaacsim_image_tag }}
dockerfile-path: docker/Dockerfile.curobo
cache-tag: cache-curobo
include-files: >-
test_contrib_environments_kitless.py,
test_contrib_environments_kit.py,
Expand Down Expand Up @@ -1236,12 +1236,17 @@ jobs:
# Warm every supported rigid core environment on Newton. MJWarp
# specializes kernels per model config, so a small representative task
# set leaves most of the cache to be compiled again by each PR test
# shard. The multi-agent suite supplies Handover.
# shard. The multi-agent suite supplies Handover. Newton deterministic
# modes generate different kernels, which only the determinism suite
# compiles, and the contributed environments are not core tasks; uncached,
# both are the long poles of their PR jobs.
include-files: >-
test_environments_newton.py,
test_multi_agent_environments.py
test_multi_agent_environments.py,
test_environment_determinism.py,
test_contrib_environments_kitless.py
# Keep this warmer focused on rigid environments.
test-k-expr: "test_environments and not (Soft or Cloth or Cable)"
test-k-expr: "not (Soft or Cloth or Cable)"
warp-cache: ${{ env.PUBLISHES_WARP_CACHE == 'true' && 'save' || 'restore' }}
container-name: isaac-lab-warp-cache-warm
omni-github-test-type: warp-cache-warm
Expand Down
21 changes: 15 additions & 6 deletions tools/test_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@
"""Per-test startup timeouts for cold external asset downloads."""

PYTEST_WORKERS = {
# Standalone launches already use independent subprocesses; overlap two simulator startups.
"test_standalone_scripts.py": 2,
# Standalone launches already use independent subprocesses; overlap four simulator startups.
"test_standalone_scripts.py": 4,
# Contributed-environment smoke tests: environment runs of several seconds to 2 min each. The camera file
# stays whole: its workers would each start the RTX renderer, and one environment dominates it.
"test_contrib_environments_kit.py": 2,
Expand Down Expand Up @@ -120,15 +120,22 @@
CUROBO_TESTS = [
*CUROBO_PLANNER_TESTS,
"test_generate_dataset_skillgen.py",
]
"""A list of tests that require cuRobo installation.

These tests are skipped in the base image CI jobs and run separately in the
dedicated ``test-curobo`` CI job which uses the cuRobo Docker image.
"""

CONTRIB_ENVIRONMENT_TESTS = [
"test_contrib_environments_kit.py",
"test_contrib_environments_kit_cameras.py",
"test_contrib_environments_kitless.py",
]
"""A list of tests that require cuRobo installation.
"""Contributed-environment smoke tests.

These tests are skipped in the base image CI jobs and run separately in the
dedicated ``test-curobo`` and ``test-contrib-environments`` CI jobs which use the cuRobo
Docker image.
These tests are skipped in the package CI jobs and run in the dedicated
``test-contrib-environments`` CI job.
"""

QUARANTINED_TESTS: list[str] = [
Expand All @@ -154,6 +161,8 @@
"test_record_video.py", # Failing
# curobo / skillgen - require cuRobo installation; run via test-curobo and test-skillgen CI jobs
*CUROBO_TESTS,
# contributed environments - run via the test-contrib-environments CI job
*CONTRIB_ENVIRONMENT_TESTS,
# quarantined tests - run in dedicated CI job that does not block PR merges
*QUARANTINED_TESTS,
"test_environments_training.py", # Long-running RL training test; runs in dedicated CI job
Expand Down
Loading