@@ -155,6 +155,7 @@ runs:
155155 if [ -n \"\$wait_pid\" ]; then kill \"\$wait_pid\" 2>/dev/null || true; fi; \
156156 exit 130" HUP INT TERM
157157
158+ echo "::group::Configuration / Setup"
158159 echo "Running tests in: $test_path"
159160 if [ -n "$pytest_options" ]; then
160161 echo "With pytest options: $pytest_options"
@@ -364,6 +365,7 @@ runs:
364365 fi
365366
366367 echo "Docker environment variables: '$docker_env_vars'"
368+ echo "::endgroup::"
367369
368370 # Run tests in a detached container and follow logs. Running detached
369371 # means the container lifecycle is independent of the shell - if the
@@ -394,7 +396,7 @@ runs:
394396 # set this detect-only flag, which makes cold asset downloads
395397 # fall back to slow repeated retries.
396398 unset HUB__ARGS__DETECT_ONLY
397- ./isaaclab.sh -p -m pip install pytest pytest-mock junitparser flatdict flaky \"coverage>=7.6.1\"
399+ ./isaaclab.sh -p -m pip install pytest pytest-mock junitparser flaky \"coverage>=7.6.1\"
398400 if [ -n \"\${TEST_WHEELHOUSE_PACKAGES:-}\" ]; then
399401 if [ ! -d \"\${TEST_WHEELHOUSE_PATH:-}\" ]; then
400402 echo \"Wheelhouse path is missing: \${TEST_WHEELHOUSE_PATH:-}\"
@@ -429,6 +431,7 @@ runs:
429431 ./isaaclab.sh -p -m pytest --ignore=tools/conftest.py $test_path $pytest_options -v --junitxml=tests/$result_file
430432 "
431433
434+ echo "::group::Following Docker container logs"
432435 # Stream container logs in background.
433436 docker logs -f "$container_name" &
434437 logs_pid=$!
@@ -453,13 +456,15 @@ runs:
453456 kill $logs_pid 2>/dev/null || true
454457 wait $logs_pid 2>/dev/null || true
455458 logs_pid=""
459+ echo "::endgroup::"
456460
457461 if [ $DOCKER_EXIT -eq 0 ]; then
458462 echo "🟢 Docker container completed successfully"
459463 else
460464 echo "🟠 Docker container failed (exit $DOCKER_EXIT), but continuing to copy results..."
461465 fi
462466
467+ echo "::group::Copy results"
463468 # Copy test results with error handling.
464469 # When volume-mounted, test output lands on the host filesystem directly
465470 # (docker cp cannot see bind-mounted paths after the container stops).
@@ -511,13 +516,16 @@ runs:
511516 elif docker cp "$container_name:/workspace/isaaclab/tests/comparison-images" "$img_dir" 2>/dev/null; then
512517 echo "🟢 Comparison images copied from container to $img_dir"
513518 fi
519+ echo "::endgroup::"
514520
521+ echo "::group::Cleanup"
515522 # Clean up container
516523 echo "🔵 Cleaning up Docker container..."
517524 docker rm $container_name 2>/dev/null || echo "🟠 Container cleanup failed, but continuing..."
518525 if [ -n "$docker_runtime_dir" ]; then
519526 rm -rf "$docker_runtime_dir" || echo "🟠 Docker runtime storage cleanup failed, but continuing..."
520527 fi
528+ echo "::endgroup::"
521529
522530 return $DOCKER_EXIT
523531 }
0 commit comments