This commit is contained in:
126
Makefile
126
Makefile
@@ -1,6 +1,10 @@
|
||||
# Quiz Bot - Makefile для удобства управления
|
||||
|
||||
.PHONY: install init demo test run clean help
|
||||
.PHONY: install init demo test run clean help docker-* dev-*
|
||||
|
||||
# =============================================================================
|
||||
# Development Commands
|
||||
# =============================================================================
|
||||
|
||||
# Установка зависимостей
|
||||
install:
|
||||
@@ -34,29 +38,123 @@ check:
|
||||
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/ --max-line-length=88 || true
|
||||
python -m pytest test_*.py -v || true
|
||||
|
||||
# Проверка кода
|
||||
lint:
|
||||
@echo "🔍 Проверка кода..."
|
||||
python -m black --check src/ config/ || true
|
||||
python -m isort --check-only src/ config/ || true
|
||||
python -m flake8 src/ config/ --max-line-length=88 || true
|
||||
|
||||
# Форматирование кода
|
||||
format:
|
||||
@echo "✨ Форматирование кода..."
|
||||
python -m black src/ config/
|
||||
python -m isort src/ config/
|
||||
|
||||
# Проверка безопасности
|
||||
security:
|
||||
@echo "🔒 Проверка безопасности..."
|
||||
python -m safety check || true
|
||||
python -m bandit -r src/ || true
|
||||
|
||||
# =============================================================================
|
||||
# Utility Commands
|
||||
# =============================================================================
|
||||
|
||||
# Очистка временных файлов
|
||||
clean:
|
||||
find . -type d -name "__pycache__" -exec rm -rf {} +
|
||||
find . -name "*.pyc" -delete
|
||||
@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:
|
||||
cp data/quiz_bot.db data/quiz_bot_backup_$(shell date +%Y%m%d_%H%M%S).db
|
||||
@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 "📋 Доступные команды:"
|
||||
@echo "🤖 Quiz Bot - Команды управления"
|
||||
@echo "=================================="
|
||||
@echo ""
|
||||
@echo "📋 Development:"
|
||||
@echo " make install - Установить зависимости"
|
||||
@echo " make init - Инициализировать проект"
|
||||
@echo " make demo - Демонстрация возможностей"
|
||||
@echo " make test - Интерактивный тест"
|
||||
@echo " make test-bot - Проверить импорты и конфигурацию"
|
||||
@echo " make run - Запустить бота"
|
||||
@echo " make check - Проверить готовность"
|
||||
@echo " make reload-questions - Перезагрузить вопросы"
|
||||
@echo " make backup - Создать backup БД"
|
||||
@echo " make clean - Очистить временные файлы"
|
||||
@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"
|
||||
|
||||
Reference in New Issue
Block a user