Files
state-corp-backend/Makefile
Aleksandr Meshchriakov e9d7f24aaa
Some checks failed
CI/CD Pipeline / Run Tests (push) Failing after 0s
CI/CD Pipeline / Code Quality Checks (push) Failing after 1m43s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
first commit
2026-01-21 12:07:35 +01:00

150 lines
5.3 KiB
Makefile
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 "✅ Очистка завершена"