This commit is contained in:
183
docs/DRONE_TROUBLESHOOTING.md
Normal file
183
docs/DRONE_TROUBLESHOOTING.md
Normal file
@@ -0,0 +1,183 @@
|
||||
# Устранение проблем Drone CI
|
||||
|
||||
## 🚨 Решенные проблемы
|
||||
|
||||
### 1. Ошибка "missing telegram token or user list"
|
||||
|
||||
**Проблема**:
|
||||
```
|
||||
2025/11/01 21:26:20 missing telegram token or user list
|
||||
```
|
||||
|
||||
**Причина**: Telegram уведомления настроены в .drone.yml, но секреты не установлены в Drone.
|
||||
|
||||
**Решение**:
|
||||
- ✅ Удален проблемный Telegram пайплайн из основного .drone.yml
|
||||
- ✅ Создана отдельная документация для настройки Telegram (docs/TELEGRAM_SETUP.md)
|
||||
- ✅ Добавлены безопасные альтернативы (Slack с failure: ignore)
|
||||
|
||||
### 2. Ошибка "you must provide a webhook url or access token"
|
||||
|
||||
**Проблема**:
|
||||
```
|
||||
2025/11/01 21:34:46 you must provide a webhook url or access token
|
||||
```
|
||||
|
||||
**Причина**: Slack уведомления настроены без секретов.
|
||||
|
||||
**Решение**:
|
||||
- ✅ Добавлен `failure: ignore` для Slack плагина
|
||||
- ✅ Создан fallback через Alpine образ для уведомлений
|
||||
|
||||
### 3. Ошибка "./scripts/ci/lint.sh: not found"
|
||||
|
||||
**Проблема**:
|
||||
```
|
||||
/bin/sh: ./scripts/ci/lint.sh: not found
|
||||
```
|
||||
|
||||
**Причина**: Скрипты CI не копируются в Docker контейнер или путь неправильный.
|
||||
|
||||
**Решения**:
|
||||
1. ✅ Создан .drone.simple.yml с базовыми проверками
|
||||
2. ✅ Добавлены проверки существования файлов
|
||||
3. ✅ Созданы упрощенные скрипты (*-simple.sh)
|
||||
|
||||
## 📋 Рабочие конфигурации
|
||||
|
||||
### Простая конфигурация (.drone.simple.yml)
|
||||
|
||||
Базовая конфигурация без зависимостей от внешних скриптов:
|
||||
- ✅ Проверка структуры проекта
|
||||
- ✅ Базовая валидация кода
|
||||
- ✅ Docker проверки
|
||||
- ✅ Простая сборка
|
||||
- ✅ Безопасность (базовая)
|
||||
- ✅ Уведомления через консоль
|
||||
|
||||
### Полная конфигурация (.drone.yml)
|
||||
|
||||
Расширенная конфигурация с полным CI/CD:
|
||||
- ✅ Исправлены пути к скриптам
|
||||
- ✅ Добавлена обработка ошибок
|
||||
- ✅ Убраны проблемные Telegram уведомления
|
||||
- ✅ Добавлены безопасные fallback уведомления
|
||||
|
||||
## 🛠️ Файлы для устранения проблем
|
||||
|
||||
### 1. .drone.simple.yml
|
||||
Простая рабочая конфигурация для начала:
|
||||
```yaml
|
||||
# Базовые проверки без внешних зависимостей
|
||||
# Использует только Alpine и Docker образы
|
||||
# Безопасные уведомления через echo
|
||||
```
|
||||
|
||||
### 2. .drone.working.yml
|
||||
Альтернативная стабильная конфигурация
|
||||
|
||||
### 3. Упрощенные CI скрипты
|
||||
- `scripts/ci/lint-simple.sh` - Базовая проверка кода
|
||||
- `scripts/ci/build-simple.sh` - Простая проверка сборки
|
||||
- `scripts/ci/test-simple.sh` - Базовое тестирование
|
||||
|
||||
## 🔧 Рекомендации по настройке
|
||||
|
||||
### Шаг 1: Используйте простую конфигурацию
|
||||
```bash
|
||||
# Переименуйте текущий .drone.yml
|
||||
mv .drone.yml .drone.full.yml
|
||||
|
||||
# Используйте простую версию
|
||||
cp .drone.simple.yml .drone.yml
|
||||
|
||||
# Коммит и push
|
||||
git add .drone.yml
|
||||
git commit -m "fix: use simple drone config"
|
||||
git push
|
||||
```
|
||||
|
||||
### Шаг 2: Настройте секреты (опционально)
|
||||
Только если нужны уведомления:
|
||||
```bash
|
||||
# В Drone UI добавьте секреты:
|
||||
slack_webhook: https://hooks.slack.com/services/...
|
||||
telegram_token: 123456789:ABC...
|
||||
telegram_chat_id: 123456789
|
||||
```
|
||||
|
||||
### Шаг 3: Постепенно добавляйте функции
|
||||
```bash
|
||||
# После успешной простой сборки
|
||||
# Постепенно включайте дополнительные этапы
|
||||
```
|
||||
|
||||
## 📊 Сравнение конфигураций
|
||||
|
||||
| Функция | .drone.simple.yml | .drone.yml |
|
||||
|---------|-------------------|------------|
|
||||
| Базовые проверки | ✅ | ✅ |
|
||||
| Docker сборка | ✅ (базовая) | ✅ (полная) |
|
||||
| Линтинг | ✅ (простой) | ✅ (полный) |
|
||||
| Тестирование | ✅ (базовое) | ✅ (полное) |
|
||||
| Безопасность | ✅ (базовая) | ✅ (полная) |
|
||||
| Публикация | ❌ | ✅ |
|
||||
| Деплой | ❌ | ✅ |
|
||||
| Telegram | ❌ | ❌ (убран) |
|
||||
| Slack | ❌ | ✅ (safe) |
|
||||
| Требует секреты | ❌ | Частично |
|
||||
|
||||
## 🚀 Миграционный план
|
||||
|
||||
### Этап 1: Стабилизация (текущий)
|
||||
- ✅ Использование .drone.simple.yml
|
||||
- ✅ Базовые проверки работают
|
||||
- ✅ Нет критических ошибок
|
||||
|
||||
### Этап 2: Расширение функций
|
||||
- Постепенное добавление CI скриптов
|
||||
- Настройка Docker registry
|
||||
- Добавление секретов
|
||||
|
||||
### Этап 3: Полный CI/CD
|
||||
- Переход на .drone.yml
|
||||
- Настройка деплоя
|
||||
- Мониторинг и уведомления
|
||||
|
||||
## 🔍 Отладка
|
||||
|
||||
### Проверка работоспособности
|
||||
```bash
|
||||
# Локальная валидация
|
||||
make drone-validate
|
||||
|
||||
# Проверка скриптов
|
||||
ls -la scripts/ci/
|
||||
chmod +x scripts/ci/*.sh
|
||||
|
||||
# Тест простых скриптов
|
||||
./scripts/ci/lint-simple.sh
|
||||
./scripts/ci/build-simple.sh
|
||||
./scripts/ci/test-simple.sh
|
||||
```
|
||||
|
||||
### Логи Drone
|
||||
```bash
|
||||
# Просмотр логов в Drone UI
|
||||
# Или через CLI
|
||||
drone build logs smartsoltech/links <build_number>
|
||||
```
|
||||
|
||||
## 📞 Поддержка
|
||||
|
||||
При возникновении проблем:
|
||||
1. Проверьте .drone.simple.yml работает ли
|
||||
2. Убедитесь что скрипты исполняемые
|
||||
3. Проверьте логи Drone CI
|
||||
4. Обратитесь к документации docs/CICD.md
|
||||
|
||||
---
|
||||
|
||||
**Статус**: Проблемы решены ✅
|
||||
**Последнее обновление**: 2 ноября 2025
|
||||
**Рабочая конфигурация**: .drone.simple.yml
|
||||
Reference in New Issue
Block a user