# Quiz Bot - Makefile для удобства управления .PHONY: install init demo test run clean help docker-* dev-* # ============================================================================= # Development Commands # ============================================================================= # Установка зависимостей install: pip install -r requirements.txt # Инициализация проекта init: python tools/init_project.py # Демонстрация возможностей demo: python tools/demo.py # Интерактивный тест test: python tests/test_quiz.py # Тест импортов и конфигурации test-bot: python tests/test_bot.py # Запуск всех pytest тестов pytest: python -m pytest tests/ -v # Покрытие кода тестами coverage: python -m pytest tests/ --cov=src --cov-report=html --cov-report=term # Типизация type-check: python -m mypy src/ || true # Проверка безопасности security-check: python -m safety check || true python -m bandit -r src/ || true # Запуск бота (требует токен в .env) run: python src/bot.py # Проверка готовности check: python setup.py # Перезагрузка вопросов в БД reload-questions: python load_questions.py # ============================================================================= # Docker Commands # ============================================================================= # Сборка Docker образа docker-build: docker build -t quiz-bot:dev . # Запуск через Docker Compose (development) docker-dev: ./scripts/dev.sh run # Остановка Docker сервисов docker-stop: ./scripts/dev.sh stop # Docker тесты docker-test: ./scripts/dev.sh test # Просмотр Docker логов docker-logs: ./scripts/dev.sh logs # Очистка Docker ресурсов docker-clean: ./scripts/dev.sh cleanup # Production деплой docker-deploy: ./scripts/deploy.sh deploy # Production мониторинг docker-monitor: ./scripts/deploy.sh monitor # ============================================================================= # CI/CD Commands # ============================================================================= # Локальное тестирование pipeline ci-test: @echo "🧪 Запуск локального тестирования..." python -m flake8 src/ config/ tools/ --max-line-length=88 || true python -m pytest tests/ -v || true # Проверка кода lint: @echo "🔍 Проверка кода..." python -m black --check src/ config/ tools/ tests/ || true python -m isort --check-only src/ config/ tools/ tests/ || true python -m flake8 src/ config/ tools/ tests/ --max-line-length=88 || true # Форматирование кода format: @echo "✨ Форматирование кода..." python -m black src/ config/ tools/ tests/ python -m isort src/ config/ tools/ tests/ # Проверка безопасности security: @echo "🔒 Проверка безопасности..." python -m safety check || true python -m bandit -r src/ || true # ============================================================================= # Utility Commands # ============================================================================= # Очистка временных файлов clean: @echo "🧹 Очистка временных файлов..." find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true find . -name "*.pyc" -delete 2>/dev/null || true find . -name "*.pyo" -delete 2>/dev/null || true find . -name "*~" -delete 2>/dev/null || true # Создание backup базы данных backup: @echo "💾 Создание backup базы данных..." mkdir -p backups cp data/quiz_bot.db backups/quiz_bot_backup_$(shell date +%Y%m%d_%H%M%S).db @echo "✅ Backup создан: backups/quiz_bot_backup_$(shell date +%Y%m%d_%H%M%S).db" # Установка dev зависимостей install-dev: pip install -r requirements.txt pip install black isort flake8 mypy pytest pytest-asyncio pytest-cov safety bandit # Показать справку help: @echo "🤖 Quiz Bot - Команды управления" @echo "==================================" @echo "" @echo "📋 Development:" @echo " make install - Установить зависимости" @echo " make install-dev - Установить dev зависимости" @echo " make init - Инициализировать проект" @echo " make demo - Демонстрация возможностей" @echo " make test - Интерактивный тест" @echo " make run - Запустить бота" @echo " make check - Проверить готовность" @echo " make backup - Создать backup БД" @echo "" @echo "🐳 Docker:" @echo " make docker-build - Собрать Docker образ" @echo " make docker-dev - Запуск в Docker (dev)" @echo " make docker-test - Docker тесты" @echo " make docker-logs - Просмотр логов" @echo " make docker-deploy - Production деплой" @echo " make docker-monitor - Production мониторинг" @echo "" @echo "🔧 Code Quality:" @echo " make lint - Проверка кода" @echo " make format - Форматирование кода" @echo " make security - Проверка безопасности" @echo " make ci-test - Локальное CI тестирование" @echo "" @echo "🚀 Быстрый старт:" @echo " 1. make install" @echo " 2. make init" @echo " 3. Добавьте BOT_TOKEN в .env" @echo " 4. make run"