我想使用Job DSL而不是电子邮件文本插件来配置电子邮件通知。
DSL不提供其他插件的功能,它只是向脚本公开它们的功能。插件仍然需要安装。
根据DSL API文档,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()
}
}
}
}
}
}
要在每次构建后发送电子邮件,无论状态如何,使用电子邮件文本,您可以使用始终触发器(代替上例中的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>"""