Skip to content

👷 Bump astral-sh/setup-uv from 7.1.2 to 7.1.4 #2876

👷 Bump astral-sh/setup-uv from 7.1.2 to 7.1.4

👷 Bump astral-sh/setup-uv from 7.1.2 to 7.1.4 #2876

Workflow file for this run

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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.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__)"