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

5.2 KiB
Raw Blame History

Настройка Telegram уведомлений для Drone CI

📱 Как настроить Telegram уведомления

Если вы хотите получать уведомления о сборках в Telegram, следуйте этой инструкции.

1. Создание Telegram бота

  1. Найдите @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 репозиторий:

# Токен бота
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. Тестирование

  1. Сделайте коммит в репозиторий
  2. Проверьте логи Drone CI
  3. Убедитесь, что уведомление пришло в 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

Решение:

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