Some checks reported errors
continuous-integration/drone/push Build encountered an error
181 lines
5.8 KiB
Makefile
181 lines
5.8 KiB
Makefile
# 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"
|