64 lines
1.6 KiB
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 {} +
|