Files
platform/docs/CI_CD.md
Vladimir Zagainov 0b16a20d83
Some checks failed
continuous-integration/drone/push Build is failing
sync
2026-01-12 17:18:20 +03:00

3.8 KiB
Raw Blame History

Настройка CI/CD (Drone CI)

Проект настроен для автоматической сборки Docker-образов и их развертывания с помощью Drone CI.

Обзор пайплайна (.drone.yml)

Конфигурация состоит из 4-х пайплайнов:

  1. build-backend: Собирает образ backend, тегирует его (latest + commit SHA) и пушит в Docker Registry.
  2. build-frontend: Многоэтапная сборка (Node.js build -> Nginx image), пуш в Registry.
  3. build-ping-helper: Сборка микросервиса ping-helper.
  4. deploy-production: Запускается только при пуше в master после успешного завершения всех сборок. Подключается к серверу по SSH, обновляет код, скачивает новые образы и перезапускает контейнеры.

Настройка интеграции (Gitea + Drone)

  1. Активация репозитория:

    • Зайдите в ваш Drone CI.
    • Найдите репозиторий minecraft-platform/platform и нажмите "Activate".
  2. Настройка секретов (Secrets): В настройках репозитория в Drone добавьте следующие секреты:

    Имя Секрета Описание
    gitea_username Логин пользователя Gitea, от имени которого будут пушиться образы в Registry.
    gitea_password Пароль (или токен) этого пользователя.
    ssh_host IP адрес или домен вашего продакшен-сервера.
    ssh_user Имя пользователя на сервере (например, root или ubuntu).
    ssh_key Приватный SSH ключ для доступа к серверу (Private Key, который соответствует Public Key в ~/.ssh/authorized_keys на сервере).
  3. Docker Registry: Убедитесь, что gitea.mrixs.me поддерживает Docker Registry и у пользователя есть права на запись в пакеты minecraft-platform/backend, frontend, ping-helper.

  4. Настройка Вебхука (Webhooks): Чтобы Drone автоматически запускал сборку при пуше (push):

    • В Gitea перейдите в Settings (Настройки) репозитория -> Webhooks.
    • Проверьте, есть ли там вебхук для Drone. Если нет, он должен был создаться автоматически при активации репозитория в Drone.
    • Если вебхука нет, добавьте его вручную:
      • Target URL: https://drone.mrixs.me/hook (адрес вашего Drone сервера)
      • HTTP Method: POST
      • Content Type: application/json
      • Trigger On: All Events (или как минимум Push и Pull Request)
    • Нажмите "Test Delivery", чтобы проверить связь. Обратите внимание на код ответа (должен быть 200 OK).

Процесс развертывания

  1. Сделайте изменения в коде.
  2. Закоммитьте и запушьте в ветку master.
  3. Drone автоматически:
    • Соберет новые образы.
    • Запушит их в Registry.
    • Зайдет на сервер, сделает docker-compose pull и docker-compose up -d.