Добавить уведомления в телеграм (чат, группу или т.п.) после выполнения пайплайна.
Краткая настройка
Добавлям настройки
в настройках необходимого репозитория (Settings > CI/CD > Secret variables
) добавляем секретные переменные:
TELEGRAM_BOT_TOKEN
— id бота при регистрации у @BotFatherTELEGRAM_USER_ID
— id чата в который будет отсылаться сообщение. (Будет отсылаться только в том случае, если боту от этого чата уже было отослано любое сообщение. Для группы достаточно добавить бота в группу).
Создадим скрипт ci-notify.sh
#!/bin/bash
TIME="10"
URL="https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage"
TEXT="Deploy status: $1%0A%0AProject:+$CI_PROJECT_NAME%0AURL:+$CI_PROJECT_URL/pipelines/$CI_PIPELINE_ID/%0ABranch:+$CI_COMMIT_REF_SLUG"
curl -s --max-time $TIME -d "chat_id=$TELEGRAM_USER_ID&disable_web_page_preview=1&text=$TEXT" $URL > /dev/null
Запуск и использование
...
deploy:
stage: deploy
script:
- sh ci-notify.sh "your success message ✅"
notify_error:
stage: notify
script:
- sh ci-notify.sh "your fail message ❌"
when: on_failure
запуск скрипта при успешном выполнении можно добавить в любой джоб, с разным соответствующим сообщением, тогда сообщения будут посылаться по мере выполнения этапов, тогда как при неуспешном выполнении будет одно сообщение.
Бонус, найти ID чата
один из вариантов: по адресу https://api.telegram.org/bot${BOT_TOKEN}/getUpdates
можно увидеть все изменения происходящие с ботом и там же посмотреть chat id группы или пользователя.
Gitlab CI
Кратко как настроить Gitlab CI можно почитать тут — Настройка CI в GitLab .gitlab-ci.yml