Задание DSL-сценарий для уведомлений по электронной почте для передачи / неудачной сборки Jenkins?
Я хотел бы настроить уведомления по электронной почте, используя Job DSL вместо плагина email-ext.
2 ответа
DSL не предоставляет возможности других плагинов, он просто предоставляет их возможности сценарию. Плагины все еще должны быть установлены.
Согласно DSL API Docs, DSL поддерживает плагин Jenkins Mailer (входит в стандартную комплектацию),
job('example') {
publishers {
mailer('me@example.com', true, true)
}
}
Это не особенно настраиваемый - вы не можете сказать это по электронной почте после каждой проходящей сборки.
Плагин расширения электронной почты также поддерживается DSL:
job('example') {
publishers {
extendedEmail {
recipientList('me@halfempty.org')
defaultSubject('Oops')
defaultContent('Something broken')
contentType('text/html')
triggers {
beforeBuild()
stillUnstable {
subject('Subject')
content('Body')
sendTo {
developers()
requester()
culprits()
}
}
}
}
}
}
Для отправки электронной почты после каждой сборки независимо от статуса, используя email-ext, вы можете использовать триггер Always (вместо триггера stillUnstable в приведенном выше примере)
(Образцы кода скопированы из связанной документации для выживания во время простоя.)
Я использую Pipeline/Workflow DSL и получил это работает:
mail from: "",
to: "yoyo@example.com",
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>"""