CI/CD build notifications
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2025-11-02 06:33:45 +09:00
parent d5f1809f5a
commit 01532e860a
10 changed files with 1104 additions and 42 deletions

169
docs/TELEGRAM_SETUP.md Normal file
View File

@@ -0,0 +1,169 @@
# Настройка Telegram уведомлений для Drone CI
## 📱 Как настроить Telegram уведомления
Если вы хотите получать уведомления о сборках в Telegram, следуйте этой инструкции.
### 1. Создание Telegram бота
1. Найдите [@BotFather](https://t.me/botfather) в Telegram
2. Отправьте команду `/newbot`
3. Следуйте инструкциям для создания бота
4. Сохраните **токен бота** (например: `123456789:ABCdefGHIjklMNOpqrSTUvwxyz`)
### 2. Получение Chat ID
**Способ 1 - Личные сообщения:**
1. Напишите вашему боту любое сообщение
2. Откройте: `https://api.telegram.org/bot<TOKEN>/getUpdates`
3. Найдите `"chat":{"id":123456789}` - это ваш Chat ID
**Способ 2 - Групповой чат:**
1. Добавьте бота в группу
2. Дайте боту права администратора (если нужно)
3. Напишите в группе: `/start`
4. Откройте: `https://api.telegram.org/bot<TOKEN>/getUpdates`
5. Найдите Chat ID группы (обычно отрицательное число)
### 3. Настройка секретов в Drone
Добавьте следующие секреты в ваш Drone CI репозиторий:
```bash
# Токен бота
telegram_token: 123456789:ABCdefGHIjklMNOpqrSTUvwxyz
# Chat ID (можно несколько через запятую)
telegram_chat_id: 123456789,987654321
```
### 4. Добавление в .drone.yml
Добавьте этот пайплайн в ваш `.drone.yml`:
```yaml
---
kind: pipeline
type: docker
name: telegram-notify
steps:
- name: telegram
image: appleboy/drone-telegram
settings:
token:
from_secret: telegram_token
to:
from_secret: telegram_chat_id
format: markdown
message: |
{{#success build.status}}
✅ *Build Success*
{{else}}
❌ *Build Failed*
{{/success}}
📁 *Repository:* {{repo.name}}
🌿 *Branch:* {{build.branch}}
👤 *Author:* {{build.author}}
📝 *Commit:* `{{truncate build.commit 8}}`
⏱️ *Duration:* {{since build.started}}
🔗 [View Build]({{build.link}})
trigger:
status:
- success
- failure
depends_on:
- catlink-ci
```
### 5. Тестирование
1. Сделайте коммит в репозиторий
2. Проверьте логи Drone CI
3. Убедитесь, что уведомление пришло в Telegram
### 🛠️ Расширенные настройки
#### Уведомления только для определенных событий
```yaml
trigger:
status:
- success
- failure
branch:
- master
- main
event:
exclude:
- pull_request
```
#### Кастомное сообщение с больше информации
```yaml
message: |
{{#success build.status}}
🎉 *Сборка прошла успешно!*
{{else}}
💥 *Сборка упала!*
{{/success}}
📦 *Проект:* {{repo.name}}
🌿 *Ветка:* {{build.branch}}
👨‍💻 *Автор:* {{build.author}}
📝 *Коммит:* `{{build.commit}}`
⏱️ *Время:* {{datetime build.finished "02/01/2006 15:04:05" "Europe/Moscow"}}
{{#success build.status}}
Все тесты прошли
🚀 Готово к деплою
{{else}}
❌ Проверьте логи: {{build.link}}
{{/success}}
```
### 🔧 Устранение неполадок
#### Ошибка: "missing telegram token or user list"
**Причина:** Не настроены секреты в Drone
**Решение:**
1. Проверьте, что секреты добавлены в настройках репозитория
2. Убедитесь в правильности названий секретов
3. Перезапустите сборку
#### Ошибка: "Bad Request: chat not found"
**Причина:** Неправильный Chat ID
**Решение:**
1. Убедитесь, что бот добавлен в чат
2. Проверьте Chat ID через getUpdates API
3. Для групп используйте отрицательный ID
#### Бот не отвечает
**Причина:** Неправильный токен или бот заблокирован
**Решение:**
1. Проверьте токен бота
2. Убедитесь, что бот не заблокирован
3. Создайте нового бота если необходимо
### 📱 Альтернативы
Если Telegram не подходит, вы можете использовать:
- **Slack**: `plugins/slack`
- **Discord**: `appleboy/drone-discord`
- **Email**: `drillster/drone-email`
- **Microsoft Teams**: `kibble-cabal/drone-teams`
---
**Примечание:** В текущей конфигурации Telegram уведомления отключены чтобы избежать ошибок. Включите их только после настройки секретов.