diff --git a/.drone.yml b/.drone.yml index f2860d1..fbfd352 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,6 +1,6 @@ kind: pipeline type: docker -name: quiz-bot-ci-cd +name: multibot-ci trigger: branch: @@ -11,67 +11,33 @@ trigger: - push - pull_request -services: - - name: docker - image: docker:27-dind - privileged: true - command: - - --host=tcp://0.0.0.0:2375 - environment: - DOCKER_TLS_CERTDIR: "" - steps: - - name: prepare - image: alpine/git:latest - environment: - DOCKER_HOST: tcp://docker:2375 + - name: install-deps + image: python:3.11-slim commands: - - echo "🚀 Pipeline started for branch ${DRONE_BRANCH}" - # BusyBox ash может не поддерживать ${VAR:0:8}; безопаснее так: - - echo "📝 Commit: $(echo ${DRONE_COMMIT_SHA} | cut -c1-8)" - - echo "👤 Author: ${DRONE_COMMIT_AUTHOR}" - - echo "📅 Build: ${DRONE_BUILD_NUMBER}" - - git --version + - pip install --upgrade pip + - pip install -r requirements.txt - name: lint - image: python:3.12-slim + image: python:3.11-slim commands: - - echo "🔍 Installing linting tools..." - - pip install --no-cache-dir flake8 black isort mypy - - echo "🎨 Running Black formatter check..." - - black --check --diff src/ config/ tools/ tests/ || true - - echo "📦 Running isort import sorting check..." - - isort --check-only --diff src/ config/ tools/ tests/ || true - - echo "🔧 Running flake8 linting..." - - flake8 src/ config/ tools/ tests/ --max-line-length=88 --extend-ignore=E203,W503 || true - - echo "✅ Linting completed" + - pip install flake8 + - flake8 . - - name: test - image: python:3.12-slim - commands: - - pip install --no-cache-dir -r requirements.txt - - python -m pytest tests/ -v --tb=short || true - - python tests/test_bot.py || true + - name: docker-build + image: plugins/docker:27 + settings: + repo: ${DRONE_REPO} # или ${DRONE_REPO_NAMESPACE}/${DRONE_REPO_NAME} + tags: + - latest + - ${DRONE_COMMIT_SHA} + dockerfile: Dockerfile + # Если не хочешь пушить — добавь: + # dry_run: true - - name: security - image: python:3.12-slim - commands: - - pip install --no-cache-dir safety bandit - - safety check --json || true - - bandit -r src/ -f json || true - - - name: typecheck - image: python:3.12-slim - commands: - - pip install --no-cache-dir mypy types-requests - - mypy src/ --ignore-missing-imports || true - - - name: docker_build + - name: docker-test image: docker:27-cli - environment: - DOCKER_HOST: tcp://docker:2375 - DOCKER_TLS_CERTDIR: "" commands: - - echo "🐳 Docker version info:" - - docker version - - echo "🔨 Building Docker image..." + - docker run --rm ${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA} python -c "print('image ok')" + depends_on: + - docker-build diff --git a/README.md b/README.md index f3fe003..5832076 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,9 @@ quiz_test/ - 📖 [Быстрый старт](docs/QUICKSTART.md) - Начало работы с проектом - 🐳 [Docker инструкции](docs/DOCKER_README.md) - Контейнеризация и развертывание - 🏗️ [DevOps инфраструктура](docs/DEVOPS_SUMMARY.md) - CI/CD и автоматизация -- 🔧 [Инфраструктура](docs/INFRASTRUCTURE.md) - Архитектура и компоненты +- � [Drone 1.x+ конфигурация](docs/DRONE_1.x_CONFIG.md) - Современный CI/CD pipeline +- 🔄 [Миграция Drone 0.8](docs/DRONE_0.8_MIGRATION.md) - Переход с устаревшей версии +- �🔧 [Инфраструктура](docs/INFRASTRUCTURE.md) - Архитектура и компоненты - 🔧 [Отчет по исправлениям](docs/FIX_REPORT.md) - История изменений ## 🚀 Быстрый старт diff --git a/data/quiz_bot.db b/data/quiz_bot.db index 9cd8af4..6f21445 100755 Binary files a/data/quiz_bot.db and b/data/quiz_bot.db differ