Files
NeveTimePanel/DRONE_SIMPLIFIED.md
2026-01-15 19:25:42 +06:00

392 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚀 Упрощённый Drone CI/CD
**Дата:** 15 января 2026
**Статус:** УПРОЩЕНО ✅
---
## 🎯 Что изменилось
### До изменения
**4 пайплайна:**
1. code-quality - Проверка качества кода
2. build-and-publish - Сборка и публикация образа
3. deploy-staging - Деплой на staging
4. deploy-production - Деплой на production
**Уведомления:**
- notify-success - Уведомление об успешной сборке
- notify-failure - Уведомление об ошибке
- notify-production-deploy - Уведомление о деплое
---
### После изменения
**2 пайплайна:**
1. code-quality - Проверка качества кода
2. build-and-publish - Сборка и публикация образа
**Уведомления:** Удалены
**Деплой пайплайны:** Удалены
---
## 📋 Оставшиеся пайплайны
### 1. code-quality
**Назначение:** Проверка качества и безопасности кода
**Триггеры:**
- Push в любую ветку
- Pull Request
**Шаги:**
1. **python-lint** - Проверка Python кода
- flake8 (синтаксис и стиль)
- pylint (качество кода)
- black (форматирование)
- isort (сортировка импортов)
2. **frontend-lint** - Проверка JavaScript/React кода
- ESLint (синтаксис и стиль)
- Prettier (форматирование)
3. **python-security** - Проверка безопасности Python
- safety (известные уязвимости)
- bandit (security linter)
4. **frontend-security** - Проверка безопасности Node.js
- npm audit (уязвимости зависимостей)
---
### 2. build-and-publish
**Назначение:** Сборка и публикация Docker образа
**Триггеры:**
- Push в ветки: main, master, develop
- Push тега
**Зависимости:**
- Запускается только после успешного code-quality
**Шаги:**
1. **build-and-push** - Сборка и публикация образа
- Сборка Docker образа
- Публикация в registry
- Автоматическое тегирование
2. **scan-image** - Сканирование на уязвимости
- Trivy сканирование
- Проверка HIGH и CRITICAL уязвимостей
---
## 🗑️ Удалённые пайплайны
### deploy-staging
**Причина удаления:** Упрощение конфигурации
**Что делал:**
- SSH подключение к staging серверу
- Обновление Docker образа
- Перезапуск контейнеров
**Альтернатива:** Ручной деплой через SSH
---
### deploy-production
**Причина удаления:** Упрощение конфигурации
**Что делал:**
- SSH подключение к production серверу
- Обновление Docker образа
- Перезапуск контейнеров
- Уведомление в Slack
**Альтернатива:** Ручной деплой через SSH
---
## 🗑️ Удалённые уведомления
### notify-success
**Что делал:** Отправка уведомления в Slack об успешной сборке
### notify-failure
**Что делал:** Отправка уведомления в Slack об ошибке сборки
### notify-production-deploy
**Что делал:** Отправка уведомления в Slack о деплое на production
**Причина удаления:** Упрощение, не требуется настройка Slack webhook
---
## 🔧 Настройка
### Необходимые Drone Secrets
Для работы оставшихся пайплайнов нужны только:
```bash
# Docker Registry
docker_username=your_username
docker_password=your_password
```
### Удалённые Secrets (больше не нужны)
```bash
# Slack (удалено)
slack_webhook
# SSH для staging (удалено)
staging_host
staging_username
staging_ssh_key
# SSH для production (удалено)
production_host
production_username
production_ssh_key
```
---
## 🚀 Как использовать
### Автоматическая проверка кода
При каждом push или pull request:
```bash
git add .
git commit -m "Update code"
git push origin main
```
**Результат:**
1. ✅ Запускается code-quality
2. ✅ Проверяется качество кода
3. ✅ Проверяется безопасность
4. ✅ Если всё ОК → запускается build-and-publish
5. ✅ Собирается Docker образ
6. ✅ Публикуется в registry
7. ✅ Сканируется на уязвимости
---
### Ручной деплой на staging
```bash
# SSH на staging сервер
ssh user@staging-server
# Обновление
cd /opt/mc-panel
docker-compose pull
docker-compose up -d
docker-compose ps
```
---
### Ручной деплой на production
```bash
# SSH на production сервер
ssh user@production-server
# Обновление
cd /opt/mc-panel
docker-compose pull
docker-compose up -d
docker-compose ps
```
---
## 📊 Сравнение
### До упрощения
```
Push → code-quality → build-and-publish → deploy-staging
notify-success
notify-failure
Tag → code-quality → build-and-publish → deploy-production
notify-production-deploy
```
**Требуется:**
- 7 Drone secrets
- Настройка Slack
- Настройка SSH для 2 серверов
---
### После упрощения
```
Push → code-quality → build-and-publish
Tag → code-quality → build-and-publish
```
**Требуется:**
- 2 Drone secrets (docker_username, docker_password)
- Ручной деплой через SSH
---
## ✅ Преимущества упрощения
### Меньше настроек
-Не нужен Slack webhook
-Не нужны SSH ключи
-Не нужны настройки серверов
- ✅ Только Docker registry
### Больше контроля
- ✅ Ручной деплой = больше контроля
- ✅ Можно проверить перед деплоем
- ✅ Можно откатить если нужно
### Проще поддержка
- ✅ Меньше кода
- ✅ Меньше зависимостей
- ✅ Проще понять
- ✅ Проще отладить
---
## 🔄 Workflow
### Разработка
```bash
# 1. Разработка
git checkout -b feature/new-feature
# ... код ...
git commit -m "Add new feature"
git push origin feature/new-feature
# 2. Pull Request
# Создать PR на GitHub/GitLab
# Drone автоматически проверит код
# 3. Merge
# После одобрения PR
git checkout main
git merge feature/new-feature
git push origin main
# 4. Автоматическая сборка
# Drone соберёт и опубликует образ
# 5. Ручной деплой
ssh user@server
cd /opt/mc-panel
docker-compose pull
docker-compose up -d
```
---
### Production Release
```bash
# 1. Создать тег
git tag -a v1.1.0 -m "Release 1.1.0"
git push origin v1.1.0
# 2. Автоматическая сборка
# Drone соберёт образ с тегом v1.1.0
# 3. Ручной деплой на production
ssh user@production-server
cd /opt/mc-panel
docker-compose pull
docker-compose up -d
docker-compose ps
```
---
## 📝 Файл .drone.yml
### Структура
```yaml
---
# Пайплайн 1: Проверка качества
kind: pipeline
name: code-quality
trigger: push, pull_request
steps:
- python-lint
- frontend-lint
- python-security
- frontend-security
---
# Пайплайн 2: Сборка и публикация
kind: pipeline
name: build-and-publish
trigger: push (main/master/develop), tag
depends_on: code-quality
steps:
- build-and-push
- scan-image
```
### Размер файла
**До:** ~300 строк
**После:** ~120 строк
**Уменьшение:** 60%
---
## 🎯 Итог
**Конфигурация упрощена!**
### Что осталось:
- ✅ Проверка качества кода
- ✅ Проверка безопасности
- ✅ Сборка Docker образа
- ✅ Публикация в registry
- ✅ Сканирование на уязвимости
### Что удалено:
- ❌ Автоматический деплой
- ❌ Уведомления в Slack
- ❌ SSH настройки
### Результат:
- 🎯 Проще настроить
- 🎯 Проще поддерживать
- 🎯 Больше контроля над деплоем
- 🎯 Меньше зависимостей
---
**Версия:** 1.1.0
**Дата:** 15 января 2026
**Статус:** УПРОЩЕНО ✅
**Меньше сложности - больше контроля!** 🚀