diff options
author | Jenkins <jenkins@review.openstack.org> | 2017-01-20 15:08:14 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-01-20 15:08:14 +0000 |
commit | 150705cf5065d3aa82a038a82eb35e3977c27e7c (patch) | |
tree | 10ce94e229aa4de569d80f103072c05ee0866511 | |
parent | 181248a4b6a1c6d4cca0e70f24d1218cf464e3cd (diff) | |
parent | b61cd60024fc2910af6b9400a9caadb6b31464ca (diff) | |
download | python-jenkins-job-builder-150705cf5065d3aa82a038a82eb35e3977c27e7c.tar.gz python-jenkins-job-builder-150705cf5065d3aa82a038a82eb35e3977c27e7c.tar.xz python-jenkins-job-builder-150705cf5065d3aa82a038a82eb35e3977c27e7c.zip |
Merge "email-ext trigger script"
-rw-r--r-- | jenkins_jobs/modules/publishers.py | 6 | ||||
-rw-r--r-- | tests/publishers/fixtures/email-ext003.xml | 188 | ||||
-rw-r--r-- | tests/publishers/fixtures/email-ext003.yaml | 34 |
3 files changed, 228 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/publishers.py b/jenkins_jobs/modules/publishers.py index 7875c1e1..c90750e8 100644 --- a/jenkins_jobs/modules/publishers.py +++ b/jenkins_jobs/modules/publishers.py @@ -1926,6 +1926,8 @@ def base_email_ext(registry, xml_parent, data, ttype): XML.SubElement(email, 'sendToDevelopers').text = 'false' XML.SubElement(email, 'includeCulprits').text = 'false' XML.SubElement(email, 'sendToRecipientList').text = 'true' + if ttype == 'ScriptTrigger': + XML.SubElement(trigger, 'triggerScript').text = data['trigger-script'] def email_ext(registry, xml_parent, data): @@ -1977,6 +1979,8 @@ def email_ext(registry, xml_parent, data): :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) + :arg str trigger-script: A Groovy script used to determine if an email + should be sent. :arg str presend-script: A Groovy script executed prior sending the mail. (default '') :arg str postsend-script: A Goovy script executed after sending the email. @@ -2037,6 +2041,8 @@ def email_ext(registry, xml_parent, data): base_email_ext(registry, ctrigger, data, 'StillUnstableTrigger') if data.get('pre-build', False): base_email_ext(registry, ctrigger, data, 'PreBuildTrigger') + if data.get('trigger-script', False): + base_email_ext(registry, ctrigger, data, 'ScriptTrigger') content_type_mime = { 'text': 'text/plain', diff --git a/tests/publishers/fixtures/email-ext003.xml b/tests/publishers/fixtures/email-ext003.xml new file mode 100644 index 00000000..880ce7fc --- /dev/null +++ b/tests/publishers/fixtures/email-ext003.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="utf-8"?> +<project> + <publishers> + <hudson.plugins.emailext.ExtendedEmailPublisher> + <recipientList>foo@example.com, bar@example.com</recipientList> + <configuredTriggers> + <hudson.plugins.emailext.plugins.trigger.AlwaysTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.AlwaysTrigger> + <hudson.plugins.emailext.plugins.trigger.UnstableTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.UnstableTrigger> + <hudson.plugins.emailext.plugins.trigger.FirstFailureTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.FirstFailureTrigger> + <hudson.plugins.emailext.plugins.trigger.NotBuiltTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.NotBuiltTrigger> + <hudson.plugins.emailext.plugins.trigger.AbortedTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.AbortedTrigger> + <hudson.plugins.emailext.plugins.trigger.RegressionTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.RegressionTrigger> + <hudson.plugins.emailext.plugins.trigger.FailureTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.FailureTrigger> + <hudson.plugins.emailext.plugins.trigger.SecondFailureTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.SecondFailureTrigger> + <hudson.plugins.emailext.plugins.trigger.ImprovementTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.ImprovementTrigger> + <hudson.plugins.emailext.plugins.trigger.StillFailingTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.StillFailingTrigger> + <hudson.plugins.emailext.plugins.trigger.SuccessTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.SuccessTrigger> + <hudson.plugins.emailext.plugins.trigger.FixedTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.FixedTrigger> + <hudson.plugins.emailext.plugins.trigger.StillUnstableTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.StillUnstableTrigger> + <hudson.plugins.emailext.plugins.trigger.PreBuildTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + </hudson.plugins.emailext.plugins.trigger.PreBuildTrigger> + <hudson.plugins.emailext.plugins.trigger.ScriptTrigger> + <email> + <recipientList/> + <subject>$PROJECT_DEFAULT_SUBJECT</subject> + <body>$PROJECT_DEFAULT_CONTENT</body> + <sendToDevelopers>true</sendToDevelopers> + <sendToRequester>true</sendToRequester> + <includeCulprits>true</includeCulprits> + <sendToRecipientList>true</sendToRecipientList> + </email> + <triggerScript>build.result.toString().equals('SUCCESS')</triggerScript> + </hudson.plugins.emailext.plugins.trigger.ScriptTrigger> + </configuredTriggers> + <contentType>text/html</contentType> + <defaultSubject>Subject for Build ${BUILD_NUMBER}</defaultSubject> + <defaultContent>The build has finished</defaultContent> + <attachmentsPattern>*/foo*.log</attachmentsPattern> + <presendScript>cancel=true</presendScript> + <postsendScript>cancel=true</postsendScript> + <attachBuildLog>false</attachBuildLog> + <compressBuildLog>false</compressBuildLog> + <saveOutput>true</saveOutput> + <disabled>false</disabled> + <replyTo>foo@example.com</replyTo> + <matrixTriggerMode>ONLY_CONFIGURATIONS</matrixTriggerMode> + </hudson.plugins.emailext.ExtendedEmailPublisher> + </publishers> +</project> diff --git a/tests/publishers/fixtures/email-ext003.yaml b/tests/publishers/fixtures/email-ext003.yaml new file mode 100644 index 00000000..0ad5c294 --- /dev/null +++ b/tests/publishers/fixtures/email-ext003.yaml @@ -0,0 +1,34 @@ +publishers: + - email-ext: + recipients: foo@example.com, bar@example.com + reply-to: foo@example.com + content-type: html + subject: Subject for Build ${BUILD_NUMBER} + body: The build has finished + attach-build-log: false + compress-log: false + attachments: "*/foo*.log" + always: true + unstable: true + first-failure: true + not-built: true + aborted: true + regression: true + failure: true + second-failure: true + improvement: true + still-failing: true + success: true + fixed: true + still-unstable: true + pre-build: true + trigger-script: "build.result.toString().equals('SUCCESS')" + matrix-trigger: only-configurations + presend-script: "cancel=true" + postsend-script: "cancel=true" + save-output: true + send-to: + - developers + - requester + - culprits + - recipients |