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: # DATA_DIR: tests/data # 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 # - 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: DATA_DIR: tests/data 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 - 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: Display python run: | python --version - name: Test with pytest run: | pytest 'tests/test_control_robot.py::test_record_and_replay_and_policy[koch-True]' -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 # end-to-end: # name: End-to-end # runs-on: ubuntu-latest # env: # DATA_DIR: tests/data # 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