Adding ability to use the Email-ext plugin
Change-Id: I3b4094397726eb0ddd0acc019e19ffa96251a9e1 Reviewed-on: https://review.openstack.org/15438 Reviewed-by: Tollef Fog Heen <tfheen@varnish-software.com> Reviewed-by: James E. Blair <corvus@inaugust.com> Approved: Clark Boylan <clark.boylan@gmail.com> Reviewed-by: Clark Boylan <clark.boylan@gmail.com> Tested-by: Jenkins
This commit is contained in:
parent
d932233e27
commit
2dbd8690d8
|
@ -640,6 +640,103 @@ def claimbuild(parser, xml_parent, data):
|
|||
XML.SubElement(xml_parent, 'hudson.plugins.claim.ClaimPublisher')
|
||||
|
||||
|
||||
def base_email_ext(parser, xml_parent, data, ttype):
|
||||
trigger = XML.SubElement(xml_parent,
|
||||
'hudson.plugins.emailext.plugins.trigger.' + ttype)
|
||||
email = XML.SubElement(trigger, 'email')
|
||||
XML.SubElement(email, 'recipientList').text = ''
|
||||
XML.SubElement(email, 'subject').text = '$PROJECT_DEFAULT_SUBJECT'
|
||||
XML.SubElement(email, 'body').text = '$PROJECT_DEFAULT_CONTENT'
|
||||
XML.SubElement(email, 'sendToDevelopers').text = 'false'
|
||||
XML.SubElement(email, 'sendToRequester').text = 'false'
|
||||
XML.SubElement(email, 'includeCulprits').text = 'false'
|
||||
XML.SubElement(email, 'sendToRecipientList').text = 'true'
|
||||
|
||||
|
||||
def email_ext(parser, xml_parent, data):
|
||||
"""yaml: email-ext
|
||||
Extend Jenkin's built in email notification
|
||||
Requires the Jenkins `Email-ext Plugin.
|
||||
<https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin>`_
|
||||
|
||||
:arg str recipients: Comma separated list of emails
|
||||
:arg str subject: Subject for the email, can include variables like
|
||||
${BUILD_NUMBER} or even groovy or javascript code
|
||||
:arg str body: Content for the body of the email, can include variables
|
||||
like ${BUILD_NUMBER}, but the real magic is using groovy or
|
||||
javascript to hook into the Jenkins API itself
|
||||
:arg bool unstable: Send an email for an unstable result (default false)
|
||||
:arg bool first-failure: Send an email for just the first failure
|
||||
(default false)
|
||||
:arg bool not-built: Send an email if not built (default false)
|
||||
:arg bool aborted: Send an email if the build is aborted (default false)
|
||||
:arg bool regression: Send an email if there is a regression
|
||||
(default false)
|
||||
:arg bool failure: Send an email if the build fails (default false)
|
||||
:arg bool improvement: Send an email if the build improves (default false)
|
||||
:arg bool still-failing: Send an email if the build is still failing
|
||||
(default false)
|
||||
:arg bool success: Send an email for a successful build (default false)
|
||||
:arg bool fixed: Send an email if the build is fixed (default false)
|
||||
:arg bool still-unstable: Send an email if the build is still unstable
|
||||
(default false)
|
||||
:arg bool pre-build: Send an email before the build (default false)
|
||||
|
||||
Example::
|
||||
|
||||
publishers:
|
||||
- email-ext:
|
||||
recipients: foo@example.com, bar@example.com
|
||||
subject: Subject for Build ${BUILD_NUMBER}
|
||||
body: The build has finished
|
||||
unstable: true
|
||||
first-failure: true
|
||||
not-built: true
|
||||
aborted: true
|
||||
regression: true
|
||||
failure: true
|
||||
improvement: true
|
||||
still-failing: true
|
||||
success: true
|
||||
fixed: true
|
||||
still-unstable: true
|
||||
pre-build: true
|
||||
"""
|
||||
emailext = XML.SubElement(xml_parent,
|
||||
'hudson.plugins.emailext.ExtendedEmailPublisher')
|
||||
XML.SubElement(emailext, 'recipientList').text = data['recipients']
|
||||
ctrigger = XML.SubElement(emailext, 'configuredTriggers')
|
||||
if data.get('unstable', False):
|
||||
base_email_ext(parser, ctrigger, data, 'UnstableTrigger')
|
||||
if data.get('first-failure', False):
|
||||
base_email_ext(parser, ctrigger, data, 'FirstFailureTrigger')
|
||||
if data.get('not-built', False):
|
||||
base_email_ext(parser, ctrigger, data, 'NotBuiltTrigger')
|
||||
if data.get('aborted', False):
|
||||
base_email_ext(parser, ctrigger, data, 'AbortedTrigger')
|
||||
if data.get('regression', False):
|
||||
base_email_ext(parser, ctrigger, data, 'RegressionTrigger')
|
||||
if data.get('failure', False):
|
||||
base_email_ext(parser, ctrigger, data, 'FailureTrigger')
|
||||
if data.get('improvement', False):
|
||||
base_email_ext(parser, ctrigger, data, 'ImprovementTrigger')
|
||||
if data.get('still-failing', False):
|
||||
base_email_ext(parser, ctrigger, data, 'StillFailingTrigger')
|
||||
if data.get('success', False):
|
||||
base_email_ext(parser, ctrigger, data, 'SuccessTrigger')
|
||||
if data.get('fixed', False):
|
||||
base_email_ext(parser, ctrigger, data, 'FixedTrigger')
|
||||
if data.get('still-unstable', False):
|
||||
base_email_ext(parser, ctrigger, data, 'StillUnstableTrigger')
|
||||
if data.get('pre-build', False):
|
||||
base_email_ext(parser, ctrigger, data, 'PreBuildTrigger')
|
||||
XML.SubElement(emailext, 'contentType').text = 'default'
|
||||
XML.SubElement(emailext, 'defaultSubject').text = data.get('subject', '')
|
||||
XML.SubElement(emailext, 'defaultContent').text = data.get('body', '')
|
||||
XML.SubElement(emailext, 'attachmentsPattern').text = ''
|
||||
XML.SubElement(emailext, 'presendScript').text = ''
|
||||
|
||||
|
||||
class Publishers(jenkins_jobs.modules.base.Base):
|
||||
sequence = 70
|
||||
|
||||
|
|
1
setup.py
1
setup.py
|
@ -77,6 +77,7 @@ setup(name='jenkins_job_builder',
|
|||
'pipeline=jenkins_jobs.modules.publishers:pipeline',
|
||||
'email=jenkins_jobs.modules.publishers:email',
|
||||
'claim-build=jenkins_jobs.modules.publishers:claimbuild',
|
||||
'email-ext=jenkins_jobs.modules.publishers:email_ext',
|
||||
],
|
||||
'jenkins_jobs.scm': [
|
||||
'git=jenkins_jobs.modules.scm:git',
|
||||
|
|
Loading…
Reference in New Issue