Задание 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 &QUOT;<a href='${env.BUILD_URL}'>${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>&QUOT;</p>
    <pre>${summary}</pre>"""
Другие вопросы по тегам