Как прикрепить журнал сборки к уведомлению электронной почты с помощью плагина 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 ответов
плагин поддерживает прикрепление журнала сборки, вам просто нужно установить флажок в конфигурации проекта.
вы можете просто использовать ${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 плагин.После установки выполните этот шаг.
- теперь в 'добавить действие после сборки’ выберите редактируемый уведомление по электронной почте и в этом разделе у вас есть возможность прикрепить логи сборки.выберите опцию как показано ниже на рисунке.
после этого применить и сохранить.Теперь вы обязательно получите Build Log in email attachment. спасибо.
Я заметил, что когда я устанавливаю флажок, чтобы прикрепить журнал сборки, он также снимает флажки после сохранения, однако он прикреплен в моих письмах после отправки электронной почты.