5.2 KiB
5.2 KiB
Настройка Telegram уведомлений для Drone CI
📱 Как настроить Telegram уведомления
Если вы хотите получать уведомления о сборках в Telegram, следуйте этой инструкции.
1. Создание Telegram бота
- Найдите @BotFather в Telegram
- Отправьте команду
/newbot - Следуйте инструкциям для создания бота
- Сохраните токен бота (например:
123456789:ABCdefGHIjklMNOpqrSTUvwxyz)
2. Получение Chat ID
Способ 1 - Личные сообщения:
- Напишите вашему боту любое сообщение
- Откройте:
https://api.telegram.org/bot<TOKEN>/getUpdates - Найдите
"chat":{"id":123456789}- это ваш Chat ID
Способ 2 - Групповой чат:
- Добавьте бота в группу
- Дайте боту права администратора (если нужно)
- Напишите в группе:
/start - Откройте:
https://api.telegram.org/bot<TOKEN>/getUpdates - Найдите Chat ID группы (обычно отрицательное число)
3. Настройка секретов в Drone
Добавьте следующие секреты в ваш Drone CI репозиторий:
# Токен бота
telegram_token: 123456789:ABCdefGHIjklMNOpqrSTUvwxyz
# Chat ID (можно несколько через запятую)
telegram_chat_id: 123456789,987654321
4. Добавление в .drone.yml
Добавьте этот пайплайн в ваш .drone.yml:
---
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. Тестирование
- Сделайте коммит в репозиторий
- Проверьте логи Drone CI
- Убедитесь, что уведомление пришло в Telegram
🛠️ Расширенные настройки
Уведомления только для определенных событий
trigger:
status:
- success
- failure
branch:
- master
- main
event:
exclude:
- pull_request
Кастомное сообщение с больше информации
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
Решение:
- Проверьте, что секреты добавлены в настройках репозитория
- Убедитесь в правильности названий секретов
- Перезапустите сборку
Ошибка: "Bad Request: chat not found"
Причина: Неправильный Chat ID
Решение:
- Убедитесь, что бот добавлен в чат
- Проверьте Chat ID через getUpdates API
- Для групп используйте отрицательный ID
Бот не отвечает
Причина: Неправильный токен или бот заблокирован
Решение:
- Проверьте токен бота
- Убедитесь, что бот не заблокирован
- Создайте нового бота если необходимо
📱 Альтернативы
Если Telegram не подходит, вы можете использовать:
- Slack:
plugins/slack - Discord:
appleboy/drone-discord - Email:
drillster/drone-email - Microsoft Teams:
kibble-cabal/drone-teams
Примечание: В текущей конфигурации Telegram уведомления отключены чтобы избежать ошибок. Включите их только после настройки секретов.