| .PHONY: install test lint format typecheck check clean all cov cov-html | |
| # Default target | |
| all: check | |
| install: | |
| uv sync --all-extras | |
| uv run pre-commit install | |
| test: | |
| uv run pytest tests/unit/ -v | |
| # Coverage aliases | |
| cov: test-cov | |
| test-cov: | |
| uv run pytest --cov=src --cov-report=term-missing | |
| cov-html: | |
| uv run pytest --cov=src --cov-report=html | |
| @echo "Coverage report: open htmlcov/index.html" | |
| lint: | |
| uv run ruff check src tests | |
| format: | |
| uv run ruff format src tests | |
| typecheck: | |
| uv run mypy src | |
| # Run all checks (lint, typecheck, test) | |
| check: lint typecheck test | |
| # Smoke tests - run against real APIs (slow, not for CI) | |
| smoke-free: | |
| @echo "Running Free Tier smoke test..." | |
| uv run python -m pytest tests/e2e/test_smoke.py::test_free_tier_synthesis -v -s | |
| smoke-paid: | |
| @echo "Running Paid Tier smoke test (requires OPENAI_API_KEY)..." | |
| uv run python -m pytest tests/e2e/test_smoke.py::test_paid_tier_synthesis -v -s | |
| smoke: smoke-free # Default to free tier | |
| # Clean up cache and artifacts | |