Я хотел бы настроить уведомления по электронной почте, используя Job DSL вместо модуля электронной почты-ext.Задание сценария DSL для уведомлений по электронной почте для прохода/неудачи Jenkins build?
ответ
DSL не предоставляет возможности других плагинов, он просто предоставляет их возможности сценарию. Плагины все еще необходимо установить.
В соответствии с Документами DSL API, DSL имеет поддержку Jenkins mailer plugin (входит в стандартную комплектацию),
job('example') {
publishers {
mailer('[email protected]', true, true)
}
}
Это не особенно настраиваемый - вы не можете сказать это по электронной почте после каждого прохождения сборки.
email extension plugin также поддерживается DSL:
job('example') {
publishers {
extendedEmail {
recipientList('[email protected]')
defaultSubject('Oops')
defaultContent('Something broken')
contentType('text/html')
triggers {
beforeBuild()
stillUnstable {
subject('Subject')
content('Body')
sendTo {
developers()
requester()
culprits()
}
}
}
}
}
}
Чтобы отправить по электронной почте после того, как каждый строить независимо от статуса, используя адрес электронной-вн, вы можете использовать always trigger (вместо stillUnstable триггера в приведенном выше примере)
(примеры кода. скопированные из связанной документации для выживания простоев)
Я использую Pipeline/Workflow DSL и получил эту работу:
mail from: "",
to: "[email protected]",
subject: """Jenkins ${env.JOB_NAME} [${env.BUILD_NUMBER}]""",
mimeType: "text/html",
body: """Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
<p>Check console output at "<a href='${env.BUILD_URL}'>${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>"</p>
<pre>${summary}</pre>"""