docs: add VGI logo, Query.Farm authorship & normalize copyright #1
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: | |
| push: | |
| branches: [main] | |
| paths-ignore: ['README.md'] | |
| pull_request: | |
| branches: [main] | |
| paths-ignore: ['README.md'] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| test: | |
| name: Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| python-version: ["3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| run: uv python install ${{ matrix.python-version }} | |
| # Install from PyPI rather than the local ../vgi-python path used for | |
| # `uv run` during development, so CI is self-contained. | |
| - name: Install dependencies | |
| run: | | |
| uv venv | |
| uv pip install vgi-python "onnxruntime>=1.17" "pillow>=10" "numpy>=1.26" "huggingface-hub>=0.23" pytest | |
| uv pip install -e . --no-deps | |
| - name: Fetch model + labels (cache on first use) | |
| run: uv run --no-sync python -c "from vgi_vision import model; model.model_path(); model.labels_path(); print(len(model.labels()), 'labels')" | |
| - name: Run tests | |
| run: uv run --no-sync pytest -q | |
| e2e: | |
| name: SQL end-to-end (haybarn) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| - name: Set up Python 3.13 | |
| run: uv python install 3.13 | |
| # Self-contained: install the worker's runtime deps into a venv from PyPI | |
| # (not the local ../vgi-python dev path), so the worker can be launched as | |
| # `.venv/bin/python vision_worker.py` (plain python ignores the PEP-723 | |
| # header that pins the dev path). | |
| - name: Install worker dependencies | |
| run: | | |
| uv venv | |
| uv pip install vgi-python "onnxruntime>=1.17" "pillow>=10" "numpy>=1.26" "huggingface-hub>=0.23" | |
| uv pip install -e . --no-deps | |
| - name: Fetch model + labels | |
| run: uv run --no-sync python -c "from vgi_vision import model; model.model_path(); model.labels_path()" | |
| - name: Install haybarn-unittest | |
| run: | | |
| uv tool install haybarn-unittest | |
| echo "$HOME/.local/bin" >> "$GITHUB_PATH" | |
| - name: Run SQL end-to-end tests | |
| run: make test-sql WORKER_STDIO=".venv/bin/python vision_worker.py" | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| - name: Install tooling | |
| run: | | |
| uv venv | |
| uv pip install vgi-python "onnxruntime>=1.17" "pillow>=10" "numpy>=1.26" "huggingface-hub>=0.23" ruff mypy | |
| uv pip install -e . --no-deps | |
| - name: Check linting | |
| run: uv run --no-sync ruff check . | |
| - name: Type check (mypy) | |
| run: uv run --no-sync mypy vgi_vision |