This commit is contained in:
169
docs/TELEGRAM_SETUP.md
Normal file
169
docs/TELEGRAM_SETUP.md
Normal 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 уведомления отключены чтобы избежать ошибок. Включите их только после настройки секретов.
|
||||
Reference in New Issue
Block a user