Files
quiz_test/Makefile
Andrey K. Choi 1c47c11eb1
Some checks reported errors
continuous-integration/drone Build encountered an error
devops prepare
2025-09-11 07:40:57 +09:00

164 lines
5.3 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 init_project.py
# Демонстрация возможностей
demo:
python demo.py
# Интерактивный тест
test:
python test_quiz.py
# Тест импортов и конфигурации
test-bot:
python test_bot.py
# Запуск бота (требует токен в .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/ --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:
@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"