Change drone.yml

This commit is contained in:
2026-01-15 19:25:42 +06:00
parent d25d7fc2f9
commit 112123b0ff
8 changed files with 937 additions and 352 deletions

391
DRONE_SIMPLIFIED.md Normal file
View File

@@ -0,0 +1,391 @@
# 🚀 Упрощённый 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
**Статус:** УПРОЩЕНО ✅
**Меньше сложности - больше контроля!** 🚀