Add validation + compatibility tests for DeepLabCut-live #37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| concurrency: | |
| group: ci-${{ github.workflow }}-pr-${{ github.event.pull_request.number }} | |
| cancel-in-progress: true | |
| jobs: | |
| unit: | |
| name: Unit + Smoke (no hardware) • ${{ matrix.os }} • py${{ matrix.python }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| python: ['3.10', '3.11', '3.12'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| cache: 'pip' | |
| - name: Cache tox environments | |
| uses: actions/cache@v4 | |
| with: | |
| path: .tox | |
| key: tox-${{ runner.os }}-${{ matrix.python }}-${{ hashFiles('pyproject.toml', 'tox.ini') }} | |
| restore-keys: | | |
| tox-${{ runner.os }}-py${{ matrix.python }}- | |
| - name: Install tox | |
| run: | | |
| python -m pip install -U pip wheel | |
| python -m pip install -U tox tox-gh-actions | |
| - name: Install Qt/OpenGL runtime deps (Ubuntu) | |
| if: startsWith(matrix.os, 'ubuntu') | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libegl1 \ | |
| libgl1 \ | |
| libopengl0 \ | |
| libxkbcommon-x11-0 \ | |
| libxcb-cursor0 | |
| - name: Run tests (exclude hardware) with coverage via tox | |
| run: | | |
| tox -q | |
| - name: Append Coverage Summary to Job | |
| if: always() | |
| shell: bash | |
| run: | | |
| python -m pip install -U coverage | |
| echo "## Coverage Summary" >> "$GITHUB_STEP_SUMMARY" | |
| echo "" >> "$GITHUB_STEP_SUMMARY" | |
| echo '```text' >> "$GITHUB_STEP_SUMMARY" | |
| python -m coverage report -m >> "$GITHUB_STEP_SUMMARY" || true | |
| echo '```' >> "$GITHUB_STEP_SUMMARY" | |
| - name: Upload coverage to Codecov # NOTE : may need to disable this if token is not setup | |
| if: github.event_name == 'pull_request' && (github.base_ref == 'main' || github.base_ref == 'master') | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: ./coverage.xml | |
| fail_ci_if_error: false | |
| dlclive-compat: | |
| name: DLCLive Compatibility • ${{ matrix.label }} • py${{ matrix.python }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: ['3.11'] | |
| include: | |
| - label: pypi-1.1 | |
| dlclive_spec: deeplabcut-live==1.1 | |
| - label: github-main | |
| dlclive_spec: git+https://github.com/DeepLabCut/DeepLabCut-live.git@main | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| cache: 'pip' | |
| - name: Install package + test dependencies | |
| run: | | |
| python -m pip install -U pip wheel | |
| python -m pip install -e .[test] | |
| - name: Install matrix DLCLive build | |
| run: | | |
| python -m pip install --upgrade --force-reinstall "${{ matrix.dlclive_spec }}" | |
| python -m pip show deeplabcut-live | |
| - name: Run DLCLive compatibility tests | |
| run: | | |
| python -m pytest -m dlclive_compat tests/compat/test_dlclive_package_compat.py -q |