183 lines
6.4 KiB
Markdown
183 lines
6.4 KiB
Markdown
# Устранение проблем 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 |