Skip to content

Commit 9a6c51b

Browse files
kellyguo11hujc7
andauthored
[Backport] Fix kitless multi-GPU tests and ROS link checks (#7558)
# Description Fixes two release CI failures without backporting #7405. ## Kitless multi-GPU tests Backports only the release-relevant multi-GPU test fix from #7540. PR #7466 is present on `release/3.0.0`, so `isaaclab.sh` rejects a downloaded-Isaac-Sim link alongside the kitless image's active virtual environment. The test runner currently creates `_isaac_sim -> /isaac-sim` unconditionally because runtime mounts make `/isaac-sim` exist even in the kitless image. This change creates the link only when `/isaac-sim/python.sh` exists. Kit-based test images retain their existing behavior, while the kitless multi-GPU smoke test resolves Python from `VIRTUAL_ENV`. This intentionally excludes #7540's image-invariant/cache changes and all of #7405, which was not backported to the release branch. Original PR: #7540 ## Documentation link check The automatic backport's link check failed twice because `www.ros.org` and `docs.ros.org` return HTTP 403 to the GitHub runner. Both links remain valid. The link-check workflow already excludes known crawl blockers, so this adds a single `ros.org` exclusion covering both hosts without changing the documentation destinations or weakening checks for other domains. Failed run: https://github.com/isaac-sim/IsaacLab/actions/runs/33828925399 ## Type of change - Bug fix (non-breaking change which fixes an issue) ## Release backport Not applicable: this PR directly targets `release/3.0.0`. ## Validation - Added a regression test that failed against the unmodified release branch and passes with the multi-GPU fix. - `uv run --no-project --with pytest --with pyyaml python -m pytest docker/test/test_container_profiles.py -q` - 14 passed. - `bash -n .github/actions/run-tests/run_tests.sh` - passed. - Parsed `.github/workflows/check-links.yml` with PyYAML and verified the exclusion matches both failing URLs. - Applicable file-scoped pre-commit hooks - passed. The branch-wide changelog hook is not applicable to a release backport because it compares historical release differences against `develop`. - The canonical `uv run isaaclab -f` command cannot resolve this branch's Linux/Windows-only lockfile on macOS; the equivalent file-scoped hooks were run directly. ## Checklist - [x] I have read and understood the contribution guidelines. - [x] I have run the applicable pre-commit checks. - [x] Documentation destinations remain unchanged. - [x] My changes generate no new warnings. - [x] I have added a regression test for the multi-GPU behavior. - [x] No changelog fragment is required because no source package changed. - [x] The contributors already exist in `CONTRIBUTORS.md`. --------- Co-authored-by: hujc <jichuanh@nvidia.com>
1 parent 85ad43c commit 9a6c51b

3 files changed

Lines changed: 21 additions & 2 deletions

File tree

.github/actions/run-tests/run_tests.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,8 +320,11 @@ run_tests() {
320320
set -e
321321
cd /workspace/isaaclab
322322
mkdir -p tests
323-
rm _isaac_sim || true
324-
ln -s /isaac-sim _isaac_sim
323+
# The runtime mounts above create /isaac-sim in every image. Link it only where Kit
324+
# lives there: in the kit-less image the link would read as a downloaded Isaac Sim,
325+
# which isaaclab.sh refuses to combine with the image's VIRTUAL_ENV.
326+
rm -f _isaac_sim
327+
if [ -x /isaac-sim/python.sh ]; then ln -s /isaac-sim _isaac_sim; fi
325328
if [ -n \"\${WARP_CACHE_PATH:-}\" ]; then
326329
./isaaclab.sh -p tools/verify_warp_cache.py
327330
fi

.github/workflows/check-links.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ jobs:
112112
--exclude 'andrew\.cmu\.edu/course/10-703/textbook/BartoSutton\.pdf'
113113
--exclude 'www\.nvidia\.com/en-us/security'
114114
--exclude 'bostondynamics\.com/reinforcement-learning-researcher-kit'
115+
--exclude 'ros\.org'
115116
--max-retries 5
116117
--retry-wait-time 10
117118
--timeout 20

docker/test/test_container_profiles.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from docker.utils import ContainerInterface, volume_mounts
1616

1717
DOCKER_DIR = Path(__file__).resolve().parents[1]
18+
REPO_ROOT = DOCKER_DIR.parent
1819

1920

2021
@pytest.fixture
@@ -288,6 +289,20 @@ def test_kitless_compose_service_has_no_isaac_sim_mounts():
288289
assert all("/kit/" not in mount["target"].lower() for mount in mounts)
289290

290291

292+
def test_run_tests_links_isaac_sim_only_where_kit_is_installed():
293+
"""The kit-less image has no Kit under ``/isaac-sim``, which the runtime mounts create anyway.
294+
295+
Linking it as ``_isaac_sim`` there reads as a downloaded Isaac Sim, which ``isaaclab.sh``
296+
refuses to combine with the image's ``VIRTUAL_ENV``.
297+
"""
298+
script = (REPO_ROOT / ".github" / "actions" / "run-tests" / "run_tests.sh").read_text(encoding="utf-8")
299+
300+
link_lines = [line.strip() for line in script.splitlines() if "ln -s /isaac-sim _isaac_sim" in line]
301+
302+
assert link_lines
303+
assert all("/isaac-sim/python.sh" in line for line in link_lines), link_lines
304+
305+
291306
def test_kitless_volume_key_resolves_owned_image_paths(monkeypatch: pytest.MonkeyPatch):
292307
"""The explicit kit-less volume key resolves the paths prepared by its Dockerfile."""
293308
monkeypatch.setenv("DOCKER_ISAACLAB_PATH", "/workspace/isaaclab")

0 commit comments

Comments
 (0)