Harden wrapped media tag parsing and batch tag ordering #111
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: CI | |
| on: | |
| push: | |
| branches: [master, main] | |
| pull_request: | |
| branches: [master, main] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Cache pip | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pip-${{ matrix.python-version }}- | |
| - name: Install dependencies | |
| run: pip install -e ".[dev,torch]" | |
| - name: Run tests | |
| run: pytest -x -m "not live" --tb=short | |
| package: | |
| runs-on: ubuntu-latest | |
| needs: test | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install build tools | |
| run: pip install build twine | |
| - name: Build distributions | |
| run: python -m build | |
| - name: Validate distributions | |
| run: twine check dist/* | |
| - name: Smoke test install from wheel | |
| run: | | |
| pip install dist/*.whl | |
| python -c "import recallforge; print(f'RecallForge {recallforge.__version__}')" | |
| recallforge --version | |
| - name: Smoke test HTTP server extra from wheel | |
| run: | | |
| WHEEL_URI=$(python - <<'PY' | |
| from pathlib import Path | |
| print(next(Path("dist").glob("*.whl")).resolve().as_uri()) | |
| PY | |
| ) | |
| pip install "recallforge[server] @ ${WHEEL_URI}" | |
| python -c "import starlette, uvicorn; from recallforge.server import run_http_server; print('HTTP server extras OK')" | |
| test-macos: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Cache pip | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/Library/Caches/pip | |
| key: ${{ runner.os }}-pip-3.12-${{ hashFiles('pyproject.toml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pip-3.12- | |
| - name: Install core dependencies | |
| run: pip install -e ".[dev,torch]" | |
| - name: Run backend selection and import tests | |
| run: pytest -x -m "not live" --tb=short -k "backend_selection or test_storage or test_documents or test_search" | |
| - name: Verify MLX detection path | |
| run: | | |
| python -c " | |
| from recallforge.backends import MLX_AVAILABLE, get_mlx_probe_reason | |
| print(f'MLX available: {MLX_AVAILABLE}') | |
| print(f'Reason: {get_mlx_probe_reason()}') | |
| " |