用于通过/失败Jenkins构建的电子邮件通知的作业DSL脚本?

时间:2016-04-29 18:40:09

标签: jobs jenkins-job-dsl

我想使用Job DSL而不是email-ext插件配置电子邮件通知。

2 个答案:

答案 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 &QUOT;<a href='${env.BUILD_URL}'>${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>&QUOT;</p>
    <pre>${summary}</pre>"""