Files
OCR-SPRIN-SERVICE/Makefile

64 lines
1.6 KiB
Makefile

.PHONY: help install dev update fmt lint typecheck test test-cov run docker-build docker-up docker-down clean
help:
@echo "Targets:"
@echo " install - install runtime + dev deps in current env"
@echo " dev - run FastAPI app with autoreload"
@echo " update - git pull + install deps + migrate db + run dev server"
@echo " fmt - format code with ruff"
@echo " lint - lint with ruff"
@echo " typecheck - run mypy"
@echo " test - run pytest"
@echo " test-cov - run pytest with coverage"
@echo " docker-build - build api image"
@echo " docker-up - start docker-compose stack"
@echo " docker-down - stop docker-compose stack"
install:
python -m pip install --upgrade pip
pip install -e ".[dev]"
pre-commit install || true
dev:
uvicorn ocr_sprint.main:app --reload --host 0.0.0.0 --port 8000
update:
@echo "[1/4] Pulling latest code..."
git pull
@echo "[2/4] Installing/updating dependencies..."
pip install -e ".[dev]"
@echo "[3/4] Running database migrations..."
alembic upgrade head
@echo "[4/4] Starting dev server..."
uvicorn ocr_sprint.main:app --reload --host 0.0.0.0 --port 8000
fmt:
ruff format src tests
ruff check --fix src tests
lint:
ruff check src tests
ruff format --check src tests
typecheck:
mypy src
test:
pytest
test-cov:
pytest --cov --cov-report=term-missing
docker-build:
docker compose build
docker-up:
docker compose up -d
docker-down:
docker compose down
clean:
rm -rf .pytest_cache .mypy_cache .ruff_cache .coverage htmlcov build dist *.egg-info
find . -type d -name __pycache__ -exec rm -rf {} +