Интеграция Telegram бота в Jenkins
Вступление
Здравствуйте! Меня зовут Сергей, и я хотел бы поделиться опытом интеграции Telegram-бота в систему непрерывной интеграции Jenkins. Целью этой задачи было обеспечение возможности получения результатов сборки в удобном формате прямо в мессенджере Telegram.
При выполнении задачи опирался на труды замечательных авторов.:
Для начала создайте Telegram бота, через https://t.me/BotFather
Глава 1. Установка плагинов.
Для успешного выполнения задачи убедитесь, что все необходимые плагины установлены. Вот те из них, которые я лично устанавливал в процессе работы.
Глава 2. Настройка Telegram бота.
Напишите @BotFather, чтобы создать бота. У него же берем токен и название бота (которое придумали).
Глава 3. Добавление Post build task.
Переходим в нашу общую сборку.
Добавляем Post build task и заполняем его.
Первый скрипт заполняется аналогично второму, однако во втором необходимо указать рабочую директорию и путь к jar-файлу.
Первый скрипт общий.
Во втором скрипте прописываем собственный путь.
Глава 4. Загрузка json и var-файла. Включение видимости id в профилях Telegram.
Далее загружаем и сохраняем jar файл и Json в корневую папку, где наши тесты. Актуальный jar берем тут https://github.com/qa-guru/allure-notifications/releases
Сonfig.json - это шаблон, на основе которого формируется отчет в Telegram.
Порядок заполнения:
- project, environment, comment - имя проекта, название окружения и произвольный комментарий.
- reportLink - ссылка на Allure report с результатами прохождения автотестов.
- language - язык, на котором будет сформирован текст для оповещения (варианты: en / fr / ru / by / cn).
- allureFolder - путь к папке с результатами работы Allure.
- enableChart - требуется ли отображать диаграмму (варианты: true / false).
- logo - путь к файлу с логотипом (если заполнено, то в левом верхнем углу диаграммы будет отображаться соответствующий логотип).
- durationFormat (optional, default value is HH:mm:ss.SSS) - определяет желаемый формат вывода для продолжительности тестов.
Также необходимо создать канал в Telegram и добавить туда своего бота. Когда добавляете в JSON идентификатор чата, перед ним нужно написать "-100". Например, если идентификатор чата "xxxxxxxxxx", то в JSON он будет выглядеть как "-100xxxxxxxxxx". Чтобы найти идентификатор чата, воспользуйтесь следующим способом:
После этого видим во всех профилях id.
Загружаем в корневую папку json и var-файл.
Глава 5. Получение отчёта в Telegram.
Создаем канал, который может быть как частным, так и общедоступным. Предоставляем нашему боту права администратора, чтобы он мог отправлять сообщения с отчетом. Бот успешно подключен. Запускаем процесс сборки и ожидаем получения отчета.
Включаем сборку и дожидаемся отчёт.
Благодаря интеграции Telegram-бота в систему непрерывной интеграции Jenkins, мне удалось реализовать механизм отправки кратких уведомлений о результатах тестирования через Allure-отчеты. Это позволило команде быстро получать информацию о результатах сборки. Таким образом, была повышена эффективность процесса разработки и ускорен цикл обратной связи между разработчиками и тестировщиками.😎