first commit
This commit is contained in:
149
Makefile
Normal file
149
Makefile
Normal file
@@ -0,0 +1,149 @@
|
||||
# Makefile для удобной работы с проектом
|
||||
|
||||
.PHONY: help install dev-up dev-down test lint format migrate createsuperuser shell
|
||||
|
||||
help:
|
||||
@echo "Доступные команды:"
|
||||
@echo ""
|
||||
@echo "🔧 Установка и настройка:"
|
||||
@echo " make install - Установка зависимостей"
|
||||
@echo ""
|
||||
@echo "🐳 Docker управление:"
|
||||
@echo " make dev-up - Запуск разработческого окружения (Docker)"
|
||||
@echo " make dev-down - Остановка разработческого окружения"
|
||||
@echo " make logs - Просмотр логов (Docker)"
|
||||
@echo ""
|
||||
@echo "🧪 Тестирование:"
|
||||
@echo " make test - Запуск тестов (по умолчанию все)"
|
||||
|
||||
@echo " Примеры:"
|
||||
@echo " make test # Все тесты"
|
||||
@echo " make test TARGET=user # Только user app"
|
||||
@echo " make test TARGET=test_models # Только модели"
|
||||
@echo ""
|
||||
@echo "🔍 Качество кода:"
|
||||
@echo " make lint - Проверка кода линтерами"
|
||||
@echo " make format - Форматирование кода"
|
||||
@echo " make type-check - Проверка типов"
|
||||
@echo " make security-check - Проверка безопасности"
|
||||
@echo " make pre-commit - Запуск pre-commit hooks"
|
||||
@echo ""
|
||||
@echo "🗄️ База данных:"
|
||||
@echo " make migrate - Выполнение миграций Django"
|
||||
@echo " make createsuperuser - Создание суперпользователя"
|
||||
@echo ""
|
||||
@echo "🛠️ Утилиты:"
|
||||
@echo " make shell - Запуск Django shell"
|
||||
@echo " make setup-dev - Настройка окружения разработки"
|
||||
@echo " make clean - Очистка временных файлов"
|
||||
|
||||
install:
|
||||
uv pip install -r requirements.txt
|
||||
uv pip install -r requirements-dev.txt
|
||||
|
||||
dev-up:
|
||||
docker-compose up -d
|
||||
@echo "Сервисы запущены. Приложение доступно по адресу: http://localhost:8000"
|
||||
|
||||
dev-down:
|
||||
docker-compose down
|
||||
|
||||
# Универсальная команда для тестирования с поддержкой аргументов
|
||||
# Использование:
|
||||
# make test # Все тесты
|
||||
# make test TARGET=user # Тесты user app
|
||||
# make test TARGET=models # Тесты моделей
|
||||
# make test TARGET=views # Тесты представлений
|
||||
# make test TARGET=serializers # Тесты сериализаторов
|
||||
# make test TARGET=services # Тесты сервисов
|
||||
test:
|
||||
@if [ "$(TARGET)" ]; then \
|
||||
echo "🧪 Запуск тестов: $(TARGET)"; \
|
||||
python run_tests_simple.py $(TARGET); \
|
||||
else \
|
||||
echo "🧪 Запуск всех тестов..."; \
|
||||
python run_tests_simple.py; \
|
||||
fi
|
||||
|
||||
lint:
|
||||
@echo "🔍 Проверка кода линтерами..."
|
||||
ruff check src/
|
||||
black --check src/
|
||||
isort --check-only src/
|
||||
@echo "✅ Линтинг завершен"
|
||||
|
||||
format:
|
||||
@echo "🎨 Форматирование кода..."
|
||||
black src/
|
||||
isort src/
|
||||
ruff check --fix src/
|
||||
@echo "✅ Форматирование завершено"
|
||||
|
||||
migrate:
|
||||
@echo "🗄️ Выполнение миграций..."
|
||||
cd src && python manage.py makemigrations
|
||||
cd src && python manage.py migrate
|
||||
|
||||
createsuperuser:
|
||||
@echo "👤 Создание суперпользователя..."
|
||||
cd src && python manage.py createsuperuser
|
||||
|
||||
shell:
|
||||
@echo "🐚 Запуск Django shell..."
|
||||
cd src && python manage.py shell
|
||||
|
||||
logs:
|
||||
@echo "📋 Просмотр логов..."
|
||||
docker-compose logs -f
|
||||
|
||||
# Дополнительные команды для тестирования
|
||||
test-cov:
|
||||
@echo "🧪 Запуск тестов с покрытием..."
|
||||
python run_tests_simple.py --coverage
|
||||
|
||||
test-fast:
|
||||
@echo "🚀 Быстрые тесты (без медленных)..."
|
||||
python run_tests_simple.py --fast
|
||||
|
||||
test-parallel:
|
||||
@echo "⚡ Параллельный запуск тестов..."
|
||||
python run_tests_simple.py --parallel=auto
|
||||
|
||||
test-failfast:
|
||||
@echo "❌ Тесты с остановкой при первой ошибке..."
|
||||
python run_tests_simple.py --failfast
|
||||
|
||||
# Дополнительные команды для качества кода
|
||||
type-check:
|
||||
@echo "🔍 Проверка типов с mypy..."
|
||||
mypy src/
|
||||
|
||||
security-check:
|
||||
@echo "🔒 Проверка безопасности..."
|
||||
bandit -r src/ -f json -o bandit-report.json || bandit -r src/
|
||||
|
||||
pre-commit:
|
||||
@echo "🔧 Запуск pre-commit hooks..."
|
||||
pre-commit run --all-files
|
||||
|
||||
# Установка и настройка
|
||||
setup-dev:
|
||||
@echo "⚙️ Настройка окружения разработки..."
|
||||
pre-commit install
|
||||
@echo "✅ Окружение настроено"
|
||||
|
||||
clean:
|
||||
@echo "🧹 Очистка временных файлов..."
|
||||
find . -type f -name "*.pyc" -delete
|
||||
find . -type d -name "__pycache__" -delete
|
||||
rm -rf *.log
|
||||
rm -rf htmlcov/
|
||||
rm -rf .coverage
|
||||
rm -rf coverage.xml
|
||||
rm -rf bandit-report.json
|
||||
rm -rf .pytest_cache/
|
||||
rm -rf .mypy_cache/
|
||||
rm -rf tests/__pycache__/
|
||||
rm -rf tests/apps/__pycache__/
|
||||
rm -rf tests/apps/user/__pycache__/
|
||||
@echo "✅ Очистка завершена"
|
||||
Reference in New Issue
Block a user