Как прикрепить журнал сборки к уведомлению электронной почты с помощью плагина Jenkins Email-ext?

версия 2.15 Jenkins plug-In Email-ext добавлена поддержка прикрепления файлов для создания уведомлений по электронной почте. Я хотел бы иметь лог прилагается для создания уведомлений по электронной почте, но я не могу выяснить, как это сделать.

журнал сборки, по-видимому, хранится на главном узле Дженкинса (в этом случае Ubuntu Linux). Например, /var/lib/jenkins/jobs/<PROJECT_NAME>/builds/<DATE_TIME>/log. Естественно, путь журнала сборки изменяется с каждой сборкой. Функция вложения файла электронной почты ext по умолчанию использует файлы из рабочая область проекта, которая находится на подчиненной машине сборки Jenkins (в данном случае Mac OS X). Например, я настроил своего подчиненного для использования папки /Users/<USERNAME>/Jenkins/build_agent/workspace/<PROJECT_NAME>/.

есть ли способ получить Email-ext для прикрепления файла из файловой системы мастера, а не рабочей области на подчиненной машине сборки?

спасибо заранее всем, кто может предложить некоторые советы. The электронная почта-ext wiki страница в настоящее время не содержит примера настройки вложений.

5 ответов


плагин поддерживает прикрепление журнала сборки, вам просто нужно установить флажок в конфигурации проекта.

Project Configuration for email-ext


вы можете просто использовать ${BUILD_LOG, maxLines, escapeHtml} токен в теле электронной почты, чтобы включить журнал сборки.

цитирование плагина электронной почты-ext doc (доступно здесь):

" чтобы увидеть список всех доступных токенов электронной почты и то, что они отображают, вы можете нажать "?"(вопросительный знак), связанный со ссылкой на маркер содержимого в верхней нижней части раздела email-ext на экране конфигурации проекта"


после сна над проблемой и проведения дополнительных исследований я пришел к выводу, что Email-ext не поддерживает вложение журнала сборки в уведомление о сборке по электронной почте.

однако я придумал скрытую работу, чтобы использовать, пока такая функция не будет доступна: я использую токены сборки Jenkins для создания соответствующей команды для копирования файла журнала с главного сервера в рабочую область сборки ведомого (см. Примечание ниже).

в проекте, после основной шаг компиляции, я добавил новый выполнить консоли шаг для создания соответствующего scp (безопасная копия) команды. Это команда (замените USER и HOSTNAME своими собственными значениями, и вам, вероятно, нужно будет настроить путь в соответствии с вашим отдельным сервером):

scp USER@HOSTNAME:/var/lib/jenkins/jobs/$JOB_NAME/builds/$BUILD_ID/log build.log

затем, в электронной почте-ext вложения поле плагина Email-ext, я ввел:

build.log

теперь журнал сборки копируется из ведущего в рабочую область ведомого и прилагается для создания уведомлений по электронной почте. Я удалил $BUILD_LOG маркер шаблон тела сообщения.

Примечание: чтобы использовать этот конкретный метод, вам нужно будет настроить SSH без пароля между ведомым и ведущим, возможно, используя ключевую парольную фразу OpenSSH. Если вам нужна помощь в этом, найдите в интернете информацию о ssh-keygen команда, и, возможно, проверить учебники, как этот. Аналогичный подход должен работать платформы, которые не имеют встроенной поддержки SSH. RoboCopy или аналогичные должны работать на системах Windows.

EDIT: плагин Email-ext теперь имеет возможность прикрепить журнал сборки к уведомлению с флажком на экране конфигурации задания. См.скольженияответ для примера.


Firsl всего, что вам нужно установить email Ext плагин.После установки выполните этот шаг.

  • теперь в 'добавить действие после сборки’ выберите редактируемый уведомление по электронной почте и в этом разделе у вас есть возможность прикрепить логи сборки.выберите опцию как показано ниже на рисунке.enter image description here

после этого применить и сохранить.Теперь вы обязательно получите Build Log in email attachment. спасибо.


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