Jenkins - Редактируемый плагин для уведомлений по электронной почте - Сбой всей сборки

В Jenkins есть плагин для отправки уведомлений, когда задание запускается для различных триггеров. Этот плагин зависит от настройки почтового сервера в глобальной конфигурации Jenkins.

Editable Email Notification Plugin - Сбой всей сборки, если почтовый сервер недоступен (порт 25) или по какой-то причине, если действие редактирования сообщения электронной почты не выполняется (для различных триггеров мы установили в конфигурации задания).

Теперь, если у меня есть задание на сборку / развертывание, которое успешно выполнено (при выполнении основного задания), но не выполнено во время отправки части электронной почты (из-за какой-то проблемы с почтовым сервером), то почему оно помечает всю работу как неудачную.

Действие триггера электронной почты не должно помечать сборку как СБОЙ (если часть триггера электронной почты не удалась из-за проблемы с почтовым сервером), и Jenkins должен либо поставить электронную почту в очередь (для отправки электронной почты на более позднем этапе, когда почтовый сервер вернулся / включен / подключен к сети). ИЛИ действие после публикации не должно иметь никакого влияния на статус работы). Если триггер электронной почты завершается неудачно, просто echo - действие отправки электронной почты не выполнено, поскольку у почтового сервера возникла проблема из-за этого / того (подробное сообщение)

Как я могу избавиться от этой ситуации. У меня долго выполняется работа, и я не хочу перезапускать ее (если я знаю, что почтовый сервер снова подключен), и даже если я перезапущу работу, я не уверен на 100%, что почтовый сервер будет включен / работает или нет.

Просто пытаюсь увидеть, есть ли опция, которую мы можем установить в Edit Email Notification, чтобы не помечать задание на сборку как FAILED, если шаг уведомления по электронной почте не удался (т. Е. Усовершенствование этого плагина) ИЛИ каким-то другим способом, которым я могу избавиться от этой ситуации.

17:15:55 ERROR: Could not send email as a part of the post-build publishers.
17:15:55 javax.mail.MessagingException: Could not connect to SMTP host: my-mailhost.company.com, port: 25;
17:15:55   nested exception is:
17:15:55    java.net.ConnectException: Connection refused
17:15:55    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
17:15:55    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
17:15:55    at javax.mail.Service.connect(Service.java:295)
17:15:55    at javax.mail.Service.connect(Service.java:176)
17:15:55    at javax.mail.Service.connect(Service.java:125)
17:15:55    at javax.mail.Transport.send0(Transport.java:194)
17:15:55    at javax.mail.Transport.send(Transport.java:124)
17:15:55    at hudson.plugins.emailext.ExtendedEmailPublisher.sendMail(ExtendedEmailPublisher.java:306)
17:15:55    at hudson.plugins.emailext.ExtendedEmailPublisher._perform(ExtendedEmailPublisher.java:281)
17:15:55    at hudson.plugins.emailext.ExtendedEmailPublisher.perform(ExtendedEmailPublisher.java:233)
17:15:55    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
17:15:55    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:772)
17:15:55    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:736)
17:15:55    at hudson.model.Build$BuildExecution.cleanUp(Build.java:192)
17:15:55    at hudson.model.Run.execute(Run.java:1778)
17:15:55    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
17:15:55    at hudson.model.ResourceController.execute(ResourceController.java:88)
17:15:55    at hudson.model.Executor.run(Executor.java:234)
17:15:55 Caused by: java.net.ConnectException: Connection refused
17:15:55    at java.net.PlainSocketImpl.socketConnect(Native Method)
17:15:55    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
17:15:55    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
17:15:55    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
17:15:55    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
17:15:55    at java.net.Socket.connect(Socket.java:519)
17:15:55    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:286)
17:15:55    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
17:15:55    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)
17:15:55    ... 17 more
17:15:55 Finished: FAILURE

1 ответ

Решение

Не найдено никаких вариантов, чтобы избавиться от вашей ситуации в плагине электронной почты, хотя я перепроверил конфигурацию плагина.

Возможно, Parameterized Trigger Plugin может сэкономить ваше время другим способом, насколько я знаю.

  1. Создать две вакансии: проект-А (основной) и проект-Б
  2. Настроить параметризованную сборку Trigger для других проектов основного проекта-A, чтобы запустить проект-B.
  3. Project-B просто отправляет электронные письма, если основной проект-A работает стабильно. Таким образом, результат основного проекта A не будет зависеть от автономного почтового сервера.
  4. Параметры, необходимые в электронном письме, могут быть легко переданы через плагин.

Я надеюсь, что это может помочь вам!

Другие вопросы по тегам