diff --git a/.github/workflows/benchmark_tests.yml b/.github/workflows/benchmark_tests.yml index 41076f4f4..52f73fe46 100644 --- a/.github/workflows/benchmark_tests.yml +++ b/.github/workflows/benchmark_tests.yml @@ -33,6 +33,7 @@ on: - "src/lerobot/scripts/lerobot_eval.py" - "docker/Dockerfile.benchmark.*" - ".github/workflows/benchmark_tests.yml" + - "pyproject.toml" pull_request: branches: @@ -42,6 +43,7 @@ on: - "src/lerobot/scripts/lerobot_eval.py" - "docker/Dockerfile.benchmark.*" - ".github/workflows/benchmark_tests.yml" + - "pyproject.toml" permissions: contents: read @@ -103,7 +105,6 @@ jobs: --shm-size=4g \ -e HF_HOME=/tmp/hf \ -e HF_USER_TOKEN="${HF_USER_TOKEN}" \ - -e LIBERO_DATA_FOLDER=/tmp/libero_data \ lerobot-benchmark-libero:ci \ bash -c " hf auth login --token \"\$HF_USER_TOKEN\" --add-to-git-credential 2>/dev/null || true diff --git a/docker/Dockerfile.benchmark.libero b/docker/Dockerfile.benchmark.libero index b4fe3cb43..bbac7e64a 100644 --- a/docker/Dockerfile.benchmark.libero +++ b/docker/Dockerfile.benchmark.libero @@ -67,6 +67,26 @@ COPY --chown=user_lerobot:user_lerobot src/ src/ RUN uv sync --locked --extra libero --no-cache +# Pre-create libero's config file so it never prompts for a dataset path at runtime. +# libero/libero/__init__.py calls input() when ~/.libero/config.yaml is missing. +# We replicate what get_default_path_dict() would write, without importing libero. +RUN python${PYTHON_VERSION} -c " +import os, yaml, importlib.util +spec = importlib.util.find_spec('libero') +pkg_dir = os.path.dirname(spec.origin) +libero_dir = os.path.join(pkg_dir, 'libero') +paths = { + 'bddl_files': os.path.join(libero_dir, 'bddl_files'), + 'init_states': os.path.join(libero_dir, 'init_files'), + 'datasets': os.path.join(libero_dir, '../datasets'), + 'assets': os.path.join(libero_dir, 'assets'), +} +config_dir = os.path.expanduser('~/.libero') +os.makedirs(config_dir, exist_ok=True) +with open(os.path.join(config_dir, 'config.yaml'), 'w') as f: + yaml.dump(paths, f) +" + RUN chmod +x /lerobot/.venv/lib/python${PYTHON_VERSION}/site-packages/triton/backends/nvidia/bin/ptxas COPY --chown=user_lerobot:user_lerobot . .