我想使用Job DSL而不是email-ext插件配置电子邮件通知。
答案 0 :(得分:7)
DSL不提供其他插件的功能,它只是暴露了他们对脚本的能力。插件仍然需要安装。
根据DSL API文档,DSL支持Jenkins mailer plugin(作为标准包含),
job('example') {
publishers {
mailer('me@example.com', true, true)
}
}
这不是特别可定制的 - 您无法在每次传递构建后告诉它发送电子邮件。
DSL也支持email extension plugin:
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 trigger(代替上面示例中的stillUnstable触发器)
(为了幸存停机时间,从链接文档中复制代码示例。)
答案 1 :(得分:0)
我正在使用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>"""