Files
links/docs/DRONE_TROUBLESHOOTING.md
Andrey K. Choi e685b48997
Some checks failed
continuous-integration/drone/push Build is failing
pipeline fix
2025-11-02 06:41:29 +09:00

183 lines
6.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
## 🚨 Решенные проблемы
### 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