name: Tests on: pull_request: branches: - main paths: - "lerobot/**" - "tests/**" - "examples/**" - ".github/**" - "poetry.lock" - "Makefile" - ".cache/**" push: branches: - main paths: - "lerobot/**" - "tests/**" - "examples/**" - ".github/**" - "poetry.lock" - "Makefile" - ".cache/**" jobs: pytest: name: Pytest runs-on: ubuntu-latest env: MUJOCO_GL: egl steps: - uses: actions/checkout@v4 with: lfs: true # Ensure LFS files are pulled - name: Install apt dependencies # portaudio19-dev is needed to install pyaudio run: | sudo apt-get update && \ sudo apt-get install -y libegl1-mesa-dev ffmpeg portaudio19-dev - name: Install poetry run: | pipx install poetry && poetry config virtualenvs.in-project true echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH # TODO(rcadene, aliberts): python 3.12 seems to be used in the tests, not python 3.10 - name: Set up Python 3.10 uses: actions/setup-python@v5 with: python-version: "3.10" cache: "poetry" - name: Install poetry dependencies run: | poetry install --all-extras - name: Test with pytest run: | pytest tests -v --cov=./lerobot --durations=0 \ -W ignore::DeprecationWarning:imageio_ffmpeg._utils:7 \ -W ignore::UserWarning:torch.utils.data.dataloader:558 \ -W ignore::UserWarning:gymnasium.utils.env_checker:247 \ && rm -rf tests/outputs outputs pytest-minimal: name: Pytest (minimal install) runs-on: ubuntu-latest env: MUJOCO_GL: egl steps: - uses: actions/checkout@v4 with: lfs: true # Ensure LFS files are pulled - name: Install apt dependencies run: sudo apt-get update && sudo apt-get install -y ffmpeg - name: Install poetry run: | pipx install poetry && poetry config virtualenvs.in-project true echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH # TODO(rcadene, aliberts): python 3.12 seems to be used in the tests, not python 3.10 - name: Set up Python 3.10 uses: actions/setup-python@v5 with: python-version: "3.10" - name: Install poetry dependencies run: | poetry install --extras "test" - name: Test with pytest run: | pytest tests -v --cov=./lerobot --durations=0 \ -W ignore::DeprecationWarning:imageio_ffmpeg._utils:7 \ -W ignore::UserWarning:torch.utils.data.dataloader:558 \ -W ignore::UserWarning:gymnasium.utils.env_checker:247 \ && rm -rf tests/outputs outputs # TODO(aliberts, rcadene): redesign after v2 migration / removing hydra # end-to-end: # name: End-to-end # runs-on: ubuntu-latest # env: # MUJOCO_GL: egl # steps: # - uses: actions/checkout@v4 # with: # lfs: true # Ensure LFS files are pulled # - name: Install apt dependencies # # portaudio19-dev is needed to install pyaudio # run: | # sudo apt-get update && \ # sudo apt-get install -y libegl1-mesa-dev portaudio19-dev # - name: Install poetry # run: | # pipx install poetry && poetry config virtualenvs.in-project true # echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH # - name: Set up Python 3.10 # uses: actions/setup-python@v5 # with: # python-version: "3.10" # cache: "poetry" # - name: Install poetry dependencies # run: | # poetry install --all-extras # - name: Test end-to-end # run: | # make test-end-to-end \ # && rm -rf outputs