TL;DR

Плагин Telegram Uploader для системы автоматизации сборочным процессом Jenkins CI, позволяет публиковать результаты сборки проекта в облачном хранилище Telegram.

Зачем это нужно?

Если вы используете Jenkins для сборки Android-приложений и вам не хватает возможности сразу же отправить собранный APK-файл в чат тестеров, откуда они могут напрямую скачать и установить приложение на свои устройства - этот плагин для вас. :)

Установка

Скачайте hpi-пакет и установите его через менеджер плагинов Jenkins (Manage Jenkins->Manage Plugins->Advanced->Upload Plugin).

Предупреждение: для работы плагина нужна Java 1.8.

Настройка

После установки плагина необходимо прописать токен бота в глобальных настройках Jenkins (Manage Jenkins->Configure System->Telegram Uploader):

Telegram Uploader Global Config

После этого нужно сконфигурировать в нужной задаче (Job) послесборочное действие (post-build action) под названием "Upload artifacts to Telegram":

Telegram Uploader Job Config

Параметры:

  • Chat ID - идентификатор чата, в который необходимо загружать артефакты сборки, положительное число для приватных чатов, отрицательное для групп, строка @channelname для каналов. Обратите внимание, что Bot API не разрешает боту посылать сообщения первым, также нельзя отправлять сообщения в группы и каналы, членом которых бот не является.
  • Caption - заголовок, длиной от 0 до 200 символов. Возможно использование переменных окружения Jenkins.
  • Filter - Ant-шаблон фильтра имен загружаемых артефактов, может быть пустым, что эквивалентно выражению ** (все файлы во всех поддиректориях).
  • Disable notification - включает режим беззвучного уведомления о загруженных файлах.
  • Fail build if upload is failed - определяет, отмечать или нет билд как неуспешный в случае возникновения проблем с загрузкой файлов.

Подводные камни

  • Плагин находится в альфа-стадии. Это значит, что при его работе возможны (и будут) ошибки. Пишите о них в GitHub Issues.
  • Артефакты для загрузки должны быть архивированы плагином Archive the artifacts. Как следствие, Telegram Uploader должен находиться в списке Post-build Actions после вышеупомянутого плагина.
  • К сожалению, мне неизвестен простой способ узнать ID чата в Telegram. Из известных мне способов самым простым является написать в чате боту и потом посмотреть поле id в результате вывода команды curl -i -X GET https://api.telegram.org/bot<inser_token_here>/getUpdates.
  • Плагин использует интерфейс Telegram Bot API, который на данный момент имеет ограничение на размер загружаемых документов в 50 мегабайт.
  • Ссылки в поле Caption на Android-клиенте некликабельны.

Пока это всё. Пожелания и замечания по плагину можно писать в комментариях.