Files
links/docs/TELEGRAM_SETUP.md
Andrey K. Choi 01532e860a
Some checks failed
continuous-integration/drone/push Build is failing
CI/CD build notifications
2025-11-02 06:33:45 +09:00

169 lines
5.2 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.

# Настройка 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 уведомления отключены чтобы избежать ошибок. Включите их только после настройки секретов.