Files
quiz_test/docs/DRONE_0.8_MIGRATION.md
Andrey K. Choi f33abbb695
Some checks reported errors
continuous-integration/drone/push Build encountered an error
fix ci/cd test errors
2025-09-11 12:04:36 +09:00

3.1 KiB
Raw Blame History

Drone 0.8 Pipeline Configuration

📋 Обзор

Pipeline был успешно переработан для совместимости с Drone 0.8. Основные изменения включают:

🔄 Ключевые изменения

Структура конфигурации

  • services: Конфигурация Docker-in-Docker для сборки образов
  • pipeline: Все шаги CI/CD в одной секции
  • Убраны секции kind, type, name (используются в Drone 1.x+)
  • Убраны volumes (заменены на environment переменные)

Синтаксис шагов

# Drone 0.8 синтаксис
pipeline:
  step_name:
    image: image_name
    commands: [...]
    when: {...}

Docker-in-Docker

services:
  docker:
    image: docker:27-dind
    privileged: true
    command: [ "--host=tcp://0.0.0.0:2375" ]
    environment:
      DOCKER_TLS_CERTDIR: ""

🚀 Pipeline шаги

  1. prepare - Подготовка и информация о сборке
  2. lint - Проверка кода (black, isort, flake8)
  3. test - Запуск тестов (pytest)
  4. security - Проверка безопасности (safety, bandit)
  5. typecheck - Проверка типов (mypy)
  6. docker_build - Сборка Docker образа
  7. docker_test - Тестирование Docker образа
  8. quality - Анализ качества кода (radon)
  9. deploy - Деплой (симуляция)
  10. notify_success - Уведомление об успехе
  11. notify_failure - Уведомление об ошибке

🎯 Условия выполнения

  • docker_build/docker_test: Только для веток main, develop
  • deploy: Только для ветки main при push
  • notify_success/notify_failure: В зависимости от статуса

🔧 Environment переменные

Используются стандартные Drone переменные:

  • ${DRONE_BRANCH} - Текущая ветка
  • ${DRONE_COMMIT_SHA} - SHA коммита
  • ${DRONE_COMMIT_AUTHOR} - Автор коммита
  • ${DRONE_BUILD_NUMBER} - Номер сборки
  • ${DRONE_BUILD_STARTED} - Время начала сборки

Проверка корректности

Pipeline проверен и готов к использованию с Drone 0.8:

  • YAML синтаксис корректен
  • Все шаги правильно настроены
  • Docker-in-Docker сконфигурирован
  • Условия выполнения установлены
  • Уведомления настроены

🏃‍♂️ Запуск

Pipeline будет автоматически запускаться при:

  • Push в любую ветку
  • Создании Pull Request
  • Сборка Docker образов только для main и develop
  • Деплой только для main

Конфигурация полностью совместима с Drone 0.8 и готова к продакшену.