mirror of
https://github.com/huggingface/lerobot.git
synced 2026-05-21 19:49:49 +00:00
fix(profiling): tolerate groot dep-install failure
groot's only policy-specific dependency is flash-attn, which has no prebuilt wheel for torch 2.10 and requires nvcc to build from source. The CI image is based on nvidia/cuda:12.4.1-base, which ships the CUDA runtime but not the compiler toolkit, so the source build fails with `/usr/local/cuda/bin/nvcc: No such file or directory`. The repo's own pyproject.toml already carries a TODO acknowledging this: gr00t needs bespoke flash-attn install steps. Treat this as an environmental limitation rather than a regression: dep-install failures for groot are logged via `::warning::` and skip the policy without failing the job. Dep-install failures for any other policy remain fatal, so real regressions still surface. Made-with: Cursor
This commit is contained in:
@@ -161,6 +161,18 @@ jobs:
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Policies whose dep-install may fail due to environment constraints
|
||||||
|
# (e.g. groot requires compiling flash-attn, which needs nvcc; the CI
|
||||||
|
# image only ships the CUDA runtime). Install failures for these are
|
||||||
|
# logged as warnings and do not fail the job. See the TODO next to
|
||||||
|
# `lerobot[groot]` in pyproject.toml.
|
||||||
|
is_install_failure_tolerated() {
|
||||||
|
case "$1" in
|
||||||
|
groot) return 0 ;;
|
||||||
|
*) return 1 ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
overall_status=0
|
overall_status=0
|
||||||
for raw_policy in "${policies_to_run[@]}"; do
|
for raw_policy in "${policies_to_run[@]}"; do
|
||||||
policy="$(echo "${raw_policy}" | xargs)"
|
policy="$(echo "${raw_policy}" | xargs)"
|
||||||
@@ -183,8 +195,12 @@ jobs:
|
|||||||
# build isolation for flash-attn specifically.
|
# build isolation for flash-attn specifically.
|
||||||
sync_cmd+=(--no-build-isolation-package flash-attn)
|
sync_cmd+=(--no-build-isolation-package flash-attn)
|
||||||
if ! "${sync_cmd[@]}"; then
|
if ! "${sync_cmd[@]}"; then
|
||||||
echo "Dependency install failed for ${policy}; skipping." >&2
|
if is_install_failure_tolerated "${policy}"; then
|
||||||
overall_status=1
|
echo "::warning::Dependency install failed for ${policy} (known-fragile); skipping."
|
||||||
|
else
|
||||||
|
echo "Dependency install failed for ${policy}; skipping." >&2
|
||||||
|
overall_status=1
|
||||||
|
fi
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user