Skip to content

Commit d13a1cc

Browse files
committed
[CI] Fix libs
ghstack-source-id: 8d1d1d5 Pull-Request: #3203
1 parent 769ee9f commit d13a1cc

File tree

5 files changed

+40
-17
lines changed

5 files changed

+40
-17
lines changed

.github/unittest/linux_libs/scripts_isaaclab/isaac.sh

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,33 +49,39 @@ conda activate ${env_dir}
4949
# Pin pytorch to 2.5.1 for IsaacLab
5050
conda install pytorch==2.5.1 torchvision==0.20.1 pytorch-cuda=12.4 -c pytorch -c nvidia -y
5151

52-
conda run -p ${env_dir} pip install --upgrade pip
53-
conda run -p ${env_dir} pip install 'isaacsim[all,extscache]==4.5.0' --extra-index-url https://pypi.nvidia.com
52+
# Ensure libexpat is at the correct version to avoid symbol errors
53+
conda install -c conda-forge expat -y
54+
55+
# Set LD_LIBRARY_PATH to prioritize conda environment libraries
56+
export LD_LIBRARY_PATH=${lib_dir}:${LD_LIBRARY_PATH:-}
57+
58+
python -m pip install --upgrade pip
59+
python -m pip install 'isaacsim[all,extscache]==4.5.0' --extra-index-url https://pypi.nvidia.com
5460
conda install conda-forge::"cmake>3.22" -y
5561

5662
git clone https://github.com/isaac-sim/IsaacLab.git
5763
cd IsaacLab
58-
conda run -p ${env_dir} ./isaaclab.sh --install sb3
64+
./isaaclab.sh --install sb3
5965
cd ../
6066

6167
# install tensordict
6268
if [[ "$RELEASE" == 0 ]]; then
6369
conda install "anaconda::cmake>=3.22" -y
64-
conda run -p ${env_dir} python -m pip install "pybind11[global]"
65-
conda run -p ${env_dir} python -m pip install git+https://github.com/pytorch/tensordict.git
70+
python -m pip install "pybind11[global]"
71+
python -m pip install git+https://github.com/pytorch/tensordict.git
6672
else
67-
conda run -p ${env_dir} python -m pip install tensordict
73+
python -m pip install tensordict
6874
fi
6975

7076
# smoke test
71-
conda run -p ${env_dir} python -c "import tensordict"
77+
python -c "import tensordict"
7278

7379
printf "* Installing torchrl\n"
74-
conda run -p ${env_dir} python -m pip install -e . --no-build-isolation
75-
conda run -p ${env_dir} python -c "import torchrl"
80+
python -m pip install -e . --no-build-isolation
81+
python -c "import torchrl"
7682

7783
# Install pytest
78-
conda run -p ${env_dir} python -m pip install pytest pytest-cov pytest-mock pytest-instafail pytest-rerunfailures pytest-error-for-skips pytest-asyncio
84+
python -m pip install pytest pytest-cov pytest-mock pytest-instafail pytest-rerunfailures pytest-error-for-skips pytest-asyncio
7985

8086
# Run tests
81-
conda run -p ${env_dir} python -m pytest test/test_libs.py -k isaac -s
87+
python -m pytest test/test_libs.py -k isaac -s

.github/unittest/linux_libs/scripts_minari/environment.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ dependencies:
2525
- gymnasium-robotics
2626
- minari[create]
2727
- jax>=0.7.0
28-
- mujoco<3.3.6
28+
- mujoco>=2.3.0,<3.0.0
2929
- mujoco-py<2.2,>=2.1
3030
- minigrid

.github/workflows/test-linux-libs.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,10 +156,10 @@ jobs:
156156
export BATCHED_PIPE_TIMEOUT=60
157157
export TD_GET_DEFAULTS_TO_NONE=1
158158
159-
bash .github/unittest/linux_libs/scripts_d4rl/setup_env.sh
160-
bash .github/unittest/linux_libs/scripts_d4rl/install.sh
161-
bash .github/unittest/linux_libs/scripts_d4rl/run_test.sh
162-
bash .github/unittest/linux_libs/scripts_d4rl/post_process.sh
159+
bash .github/unittest/linux_libs/scripts_envpool/setup_env.sh
160+
bash .github/unittest/linux_libs/scripts_envpool/install.sh
161+
bash .github/unittest/linux_libs/scripts_envpool/run_test.sh
162+
bash .github/unittest/linux_libs/scripts_envpool/post_process.sh
163163
164164
unittests-gendgrl:
165165
strategy:

test/test_libs.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@
7373
from torchrl.data.datasets.roboset import RobosetExperienceReplay
7474
from torchrl.data.datasets.vd4rl import VD4RLExperienceReplay
7575
from torchrl.data.replay_buffers import SamplerWithoutReplacement
76+
from torchrl.data.replay_buffers.samplers import SliceSampler
77+
from torchrl.data.replay_buffers.storages import LazyTensorStorage
7678
from torchrl.data.utils import CloudpickleWrapper
7779
from torchrl.envs import (
7880
CatTensors,
@@ -82,6 +84,7 @@
8284
EnvCreator,
8385
RemoveEmptySpecs,
8486
RenameTransform,
87+
StepCounter,
8588
)
8689
from torchrl.envs.batched_envs import SerialEnv
8790
from torchrl.envs.libs.brax import _has_brax, BraxEnv, BraxWrapper
@@ -2790,7 +2793,7 @@ class TestVmas:
27902793
@pytest.mark.parametrize("scenario_name", VmasWrapper.available_envs)
27912794
@pytest.mark.parametrize("continuous_actions", [True, False])
27922795
def test_all_vmas_scenarios(self, scenario_name, continuous_actions):
2793-
2796+
27942797
env = VmasEnv(
27952798
scenario=scenario_name,
27962799
continuous_actions=continuous_actions,
@@ -3455,6 +3458,8 @@ def test_d4rl_dummy(self, task):
34553458
@pytest.mark.parametrize("split_trajs", [True, False])
34563459
@pytest.mark.parametrize("from_env", [True, False])
34573460
def test_dataset_build(self, task, split_trajs, from_env):
3461+
import d4rl # noqa: F401
3462+
34583463
t0 = time.time()
34593464
data = D4RLExperienceReplay(
34603465
task, split_trajs=split_trajs, from_env=from_env, batch_size=2
@@ -5144,6 +5149,17 @@ def test_isaaclab(self, env):
51445149
env.check_env_specs(break_when_any_done="both")
51455150
torchrl_logger.info("Check succeeded!")
51465151

5152+
def test_isaaclab_rb(self, env):
5153+
env = env.append_transform(StepCounter())
5154+
rb = ReplayBuffer(
5155+
storage=LazyTensorStorage(50, ndim=2), sampler=SliceSampler(num_slices=5)
5156+
)
5157+
rb.extend(env.rollout(20))
5158+
# check that rb["step_count"].flatten() is made of sequences of 4 consecutive numbers
5159+
flat_ranges = rb["step_count"].flatten() % 4
5160+
arange = torch.arange(flat_ranges.numel(), device=flat_ranges.device) % 4
5161+
assert (flat_ranges == arange).all()
5162+
51475163
def test_isaac_collector(self, env):
51485164
col = SyncDataCollector(
51495165
env, env.rand_action, frames_per_batch=1000, total_frames=100_000_000

torchrl/data/datasets/d4rl.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,7 @@ def _get_dataset_from_env(self, name, env_kwargs):
346346
"""
347347
if env_kwargs:
348348
raise RuntimeError("env_kwargs cannot be passed with using from_env=True")
349+
import d4rl # noqa: F401
349350
import gym
350351

351352
# we do a local import to avoid circular import issues

0 commit comments

Comments
 (0)