Вопрос или проблема
Мне нужно настроить Jenkins так, чтобы отправлять электронное письмо, если сборка нарушается и остается незаявленной, скажем, через два часа. Существует ли настройка/плагин, который может это сделать?
По-видимому, встроенная система электронной почты не может обработать ваш конкретный запрос.
Для справки: с главной страницы следуйте в “Управление Jenkins”, затем перейдите на страницу “Настроить систему” и найдите раздел “Уведомление по электронной почте” внизу (извините за возможные расхождения в формулировках, это перевод с моего французского Jenkins).
Я ее не использовал, но плагин “Extensible E-mail” (https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin) предлагает гораздо больше настроек, включая то, что именно вызывает отправку уведомления по электронной почте.
Плагин email-ext (Редактируемое уведомление по электронной почте) позволяет выполнять огромное количество настроек, включая отправку электронной почты на основе логики скрипта (которую вы можете написать самостоятельно)
.
Ответ или решение
Чтобы настроить отправку уведомлений Jenkins по электронной почте, если сборка остается неисправной в течение определенного времени, например, двух часов, потребуется использовать более сложное решение, чем стандартные возможности Jenkins. Встроенная система уведомлений Jenkins не поддерживает такой функционал из коробки. Однако, есть способ добиться нужного результата с использованием расширяемых плагинов и кастомных скриптов.
Теория:
Основной задачей является мониторинг состояния сборки в Jenkins и отправка уведомлений, если проблема остается неустраненной в течение заданного времени. Ваша задача заключается в использовании плагина для отправки расширяемых уведомлений по электронной почте, например, плагина Email-ext (Editable Email Notification). Данный плагин позволяет задавать сложные условия и триггеры для отправки уведомлений.
Пример:
-
Установите плагин Email-ext:
- Перейдите в "Управление Jenkins" → "Управление плагинами" → вкладка "Установим" и найдите плагин "Email-ext". Установите его.
-
Настройте Email-ext:
- Перейдите в "Управление Jenkins" → "Настроить систему" и найдите секцию "Расширяемое уведомление по электронной почте".
- Задайте параметры сервера SMTP и другие настройки Email-отправки.
-
Создайте кастомный скрипт для проверки продолжительности неудачной сборки:
- В настройках проекта перейдите в "Настроить проект" и выберите "Пост-события сборки" → "Расширяемое уведомление по электронной почте".
- Напишите скрипт на груви или другом скриптовом языке, который позволит отслеживать состояние сборки в течение определенного времени и проверять, не была ли она "запрошена" (unclaimed).
Применение:
С помощью Email-ext вы можете задать проверку условного триггера для отправки письма. Используйте встроенные возможности плагина для написания логики скрипта, который будет проверять время последней неудачной сборки и сравнивать его с текущим временем. Если различие превышает заданный промежуток (например, два часа) и сборка не была "запрошена", осуществляется отправка уведомления.
Такое решение позволяет гибко настраивать систему оповещений и эффективно реагировать на продолжительно остающиеся неисправными сборки в Jenkins, поддерживая стабильность и наблюдаемость процесса разработки.