- Перенесена структура Django-конфига в src/core и src/settings - Унифицирована Docker-сборка и docker-compose для dev/prod - Добавлены startup-checks (DB/Redis) и обновлены env-шаблоны - Расширена OpenAPI-документация и ответы API - Удалены устаревшие deploy/requirements/служебные скрипты - Обновлены CI/CD, README и тесты
104 lines
3.0 KiB
Makefile
104 lines
3.0 KiB
Makefile
.PHONY: help install setup-dev dev-up dev-down prod-up prod-down logs test test-cov test-fast test-parallel test-failfast lint format type-check security-check pre-commit pre-push migrate createsuperuser shell clean
|
|
|
|
COMPOSE_DEV = docker compose -f docker-compose.dev.yml
|
|
COMPOSE_PROD = docker compose -f docker-compose.prod.yml --env-file .env.prod
|
|
|
|
help:
|
|
@echo "Available commands:"
|
|
@echo " make install - Install dependencies (uv sync --dev)"
|
|
@echo " make setup-dev - Install git hooks (pre-commit + pre-push)"
|
|
@echo " make dev-up - Start local stack (dev compose)"
|
|
@echo " make dev-down - Stop local stack"
|
|
@echo " make prod-up - Start prod compose (without db/redis)"
|
|
@echo " make prod-down - Stop prod compose"
|
|
@echo " make logs - Follow logs from dev compose"
|
|
@echo " make test - Run tests (use TARGET=... to filter)"
|
|
@echo " make pre-commit - Run all pre-commit checks"
|
|
@echo " make pre-push - Run pre-push checks (tests)"
|
|
@echo " make migrate - Run Django migrations"
|
|
@echo " make createsuperuser - Create Django superuser"
|
|
@echo " make shell - Open Django shell"
|
|
@echo " make clean - Cleanup caches and artifacts"
|
|
|
|
install:
|
|
uv sync --dev
|
|
|
|
setup-dev: install
|
|
./scripts/setup-precommit.sh
|
|
|
|
dev-up:
|
|
$(COMPOSE_DEV) up -d
|
|
|
|
dev-down:
|
|
$(COMPOSE_DEV) down
|
|
|
|
prod-up:
|
|
$(COMPOSE_PROD) up -d
|
|
|
|
prod-down:
|
|
$(COMPOSE_PROD) down
|
|
|
|
logs:
|
|
$(COMPOSE_DEV) logs -f
|
|
|
|
test:
|
|
@if [ "$(TARGET)" ]; then \
|
|
echo "Running tests: $(TARGET)"; \
|
|
if [ "$(TARGET)" = "user" ]; then \
|
|
./scripts/run-tests.sh ../tests/apps/user; \
|
|
elif [ "$(TARGET)" = "models" ] || [ "$(TARGET)" = "views" ] || [ "$(TARGET)" = "serializers" ] || [ "$(TARGET)" = "services" ]; then \
|
|
./scripts/run-tests.sh ../tests -k "test_$(TARGET)"; \
|
|
elif echo "$(TARGET)" | grep -q '^test_'; then \
|
|
./scripts/run-tests.sh ../tests -k "$(TARGET)"; \
|
|
else \
|
|
./scripts/run-tests.sh "$(TARGET)"; \
|
|
fi; \
|
|
else \
|
|
echo "Running full test suite"; \
|
|
./scripts/run-tests.sh; \
|
|
fi
|
|
|
|
test-cov:
|
|
./scripts/run-tests.sh ../tests --cov=src --cov-report=term-missing --cov-report=xml --cov-report=html
|
|
|
|
test-fast:
|
|
./scripts/run-tests.sh ../tests -m "not slow"
|
|
|
|
test-parallel:
|
|
./scripts/run-tests.sh ../tests -n auto || ./scripts/run-tests.sh ../tests
|
|
|
|
test-failfast:
|
|
./scripts/run-tests.sh ../tests -x
|
|
|
|
pre-commit:
|
|
uv run pre-commit run --all-files
|
|
|
|
pre-push:
|
|
uv run pre-commit run --hook-stage pre-push --all-files
|
|
|
|
lint: pre-commit
|
|
|
|
format:
|
|
uv run pre-commit run --all-files ruff-format
|
|
uv run pre-commit run --all-files ruff
|
|
|
|
type-check: pre-commit
|
|
|
|
security-check: pre-commit
|
|
|
|
migrate:
|
|
cd src && uv run python manage.py makemigrations
|
|
cd src && uv run python manage.py migrate
|
|
|
|
createsuperuser:
|
|
cd src && uv run python manage.py createsuperuser
|
|
|
|
shell:
|
|
cd src && uv run python manage.py shell
|
|
|
|
clean:
|
|
find . -type f -name "*.pyc" -delete
|
|
find . -type d -name "__pycache__" -delete
|
|
rm -rf *.log htmlcov .coverage coverage.xml bandit-report.json
|
|
rm -rf .pytest_cache .mypy_cache .ruff_cache
|