fix(ci): use root container chmod + python3 for benchmark artifact dirs

- Replace host-side chmod (unreliable across Docker UID boundary) with a
  dedicated 'docker run --user root' step that chmods from inside the
  container before the eval run mounts the path.
- Use python3 instead of python (CI runners only have python3).
- Add if: always() to parse/upload steps so metrics are captured even on
  eval failure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Pepijn
2026-04-08 19:22:16 +02:00
parent 3d4245da7d
commit bcfcedd72e
+20 -4
View File
@@ -100,9 +100,17 @@ jobs:
lerobot-benchmark-libero:ci \
bash -c "hf auth login --token '$HF_USER_TOKEN' --add-to-git-credential && hf auth whoami"
- name: Prepare Libero artifact directory
run: |
mkdir -p /tmp/libero-artifacts
# Grant write access from inside the container to handle any host/container UID mismatch.
docker run --rm --user root \
-v /tmp/libero-artifacts:/artifacts \
lerobot-benchmark-libero:ci \
bash -c "mkdir -p /artifacts/videos && chmod -R 777 /artifacts"
- name: Run Libero smoke eval (1 episode)
run: |
mkdir -p /tmp/libero-artifacts && chmod 777 /tmp/libero-artifacts
docker run --rm --gpus all \
--shm-size=4g \
-e HF_HOME=/tmp/hf \
@@ -128,7 +136,7 @@ jobs:
- name: Parse Libero eval metrics
if: always()
run: |
python scripts/ci/parse_eval_metrics.py \
python3 scripts/ci/parse_eval_metrics.py \
--artifacts-dir /tmp/libero-artifacts \
--env libero \
--task libero_spatial \
@@ -181,9 +189,17 @@ jobs:
cache-from: type=local,src=/tmp/.buildx-cache-metaworld
cache-to: type=local,dest=/tmp/.buildx-cache-metaworld,mode=max
- name: Prepare MetaWorld artifact directory
run: |
mkdir -p /tmp/metaworld-artifacts
# Grant write access from inside the container to handle any host/container UID mismatch.
docker run --rm --user root \
-v /tmp/metaworld-artifacts:/artifacts \
lerobot-benchmark-metaworld:ci \
bash -c "mkdir -p /artifacts/videos && chmod -R 777 /artifacts"
- name: Run MetaWorld smoke eval (1 episode)
run: |
mkdir -p /tmp/metaworld-artifacts && chmod 777 /tmp/metaworld-artifacts
docker run --rm --gpus all \
--shm-size=4g \
-e HF_HOME=/tmp/hf \
@@ -209,7 +225,7 @@ jobs:
- name: Parse MetaWorld eval metrics
if: always()
run: |
python scripts/ci/parse_eval_metrics.py \
python3 scripts/ci/parse_eval_metrics.py \
--artifacts-dir /tmp/metaworld-artifacts \
--env metaworld \
--task metaworld-push-v3 \