fix: 🐞 enable push triggers for MMDet CI and update find-links in pyproject.toml #2910
Workflow file for this run
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: "Python Multi-OS CI (uv)" | |
| on: | |
| push: | |
| branches: [main] | |
| paths-ignore: | |
| - "**.md" | |
| - "**.ipynb" | |
| - "**.cff" | |
| - "docs/**" | |
| - "demo/**" | |
| - "context7.json" | |
| - "mkdocs.yml" | |
| pull_request: | |
| branches: [main] | |
| paths-ignore: | |
| - "**.md" | |
| - "**.ipynb" | |
| - "**.cff" | |
| - "docs/**" | |
| - "demo/**" | |
| - "context7.json" | |
| - "mkdocs.yml" | |
| schedule: | |
| - cron: "0 0 * * *" # Runs at 00:00 UTC every day | |
| workflow_dispatch: # allow running sync via github ui button | |
| jobs: | |
| ci: | |
| name: "CI — Full tests (OS: ${{ matrix.os }}, Python: ${{ matrix.python-version }})" | |
| if: github.event_name != 'schedule' && github.event_name != 'workflow_dispatch' | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
| steps: | |
| - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 | |
| - name: Setup uv python package manager | |
| uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| enable-cache: true | |
| prune-cache: false | |
| activate-environment: true | |
| cache-dependency-glob: | | |
| **/pyproject.toml | |
| - name: Cache model weights | |
| uses: actions/cache@v4 | |
| with: | |
| path: tests/data/models | |
| key: ${{ runner.os }}-models-${{ hashFiles('sahi/utils/huggingface.py', 'sahi/utils/yolov5.py', 'sahi/utils/ultralytics.py', 'sahi/utils/rtdetr.py', 'sahi/utils/torchvision.py') }} | |
| restore-keys: | | |
| ${{ runner.os }}-models- | |
| - name: Install dependencies | |
| run: uv sync --group dev --extra ci | |
| - name: List installed packages | |
| run: | | |
| echo "=== Installed Python packages ===" | |
| uv pip list | |
| echo "" | |
| echo "=== Python version ===" | |
| python --version | |
| echo "" | |
| echo "=== uv version ===" | |
| uv --version | |
| - name: Test with python ${{ matrix.python-version }} | |
| run: | | |
| # Exclude MMDet tests which run in a separate workflow | |
| uv run pytest --capture=no -n auto -k "not (mmdet or test_get_prediction_mmdet or test_get_sliced_prediction_mmdet or test_mmdet_yolox_tiny_prediction)" | |
| - name: Test SAHI CLI (without MMDet) | |
| run: | | |
| uv run sahi predict --no_sliced_prediction --model_type ultralytics --source tests/data/coco_utils/terrain1.jpg --novisual --model_path tests/data/models/ultralytics/yolo11n.pt --image_size 320 | |
| uv run sahi predict --model_type ultralytics --source tests/data/ --novisual --model_path tests/data/models/ultralytics/yolo11n.pt --image_size 320 | |
| uv run sahi predict --model_type ultralytics --source tests/data/coco_utils/terrain1.jpg --export_pickle --export_crop --model_path tests/data/models/ultralytics/yolo11n.pt --image_size 320 | |
| uv run sahi predict --model_type ultralytics --source tests/data/coco_utils/ --novisual --dataset_json_path tests/data/coco_utils/combined_coco.json --model_path tests/data/models/ultralytics/yolo11n.pt --image_size 320 | |
| # coco yolov5 | |
| uv run sahi coco yolov5 --image_dir tests/data/coco_utils/ --dataset_json_path tests/data/coco_utils/combined_coco.json --train_split 0.9 | |
| # coco evaluate | |
| uv run sahi coco evaluate --dataset_json_path tests/data/coco_evaluate/dataset.json --result_json_path tests/data/coco_evaluate/result.json | |
| # coco analyse | |
| uv run sahi coco analyse --dataset_json_path tests/data/coco_evaluate/dataset.json --result_json_path tests/data/coco_evaluate/result.json --out_dir tests/data/coco_evaluate/ | |
| schedule-test: | |
| name: "Schedule/PyPI check" | |
| if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
| steps: | |
| - name: Setup uv python package manager | |
| uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| enable-cache: true | |
| prune-cache: false | |
| activate-environment: true | |
| - name: List installed packages | |
| run: | | |
| echo "=== Python version ===" | |
| python --version | |
| echo "" | |
| echo "=== uv version ===" | |
| uv --version | |
| - name: Install sahi from PyPI | |
| run: | | |
| uv pip install sahi | |
| uv pip show sahi | |
| uv run python -c "import sahi; print(sahi.__version__)" |