diff --git a/jenkins_jobs/modules/publishers.py b/jenkins_jobs/modules/publishers.py index aca638a55..d2f45d73b 100644 --- a/jenkins_jobs/modules/publishers.py +++ b/jenkins_jobs/modules/publishers.py @@ -759,6 +759,24 @@ def fingerprint(parser, xml_parent, data): 'record-artifacts', False)).lower() +def aggregate_tests(parser, xml_parent, data): + """yaml: aggregate-tests + Aggregate downstream test results + + :arg bool include-failed-builds: whether to include failed builds + + Example:: + + publishers: + - aggregate-tests: + include-failed-builds: true + """ + agg = XML.SubElement(xml_parent, + 'hudson.tasks.test.AggregatedTestResultPublisher') + XML.SubElement(agg, 'includeFailedBuilds').text = str(data.get( + 'include-failed-builds', False)).lower() + + class Publishers(jenkins_jobs.modules.base.Base): sequence = 70 diff --git a/setup.py b/setup.py index 194062126..970143761 100644 --- a/setup.py +++ b/setup.py @@ -79,6 +79,7 @@ setup(name='jenkins_job_builder', 'claim-build=jenkins_jobs.modules.publishers:claimbuild', 'email-ext=jenkins_jobs.modules.publishers:email_ext', 'fingerprint=jenkins_jobs.modules.publishers:fingerprint', + 'aggregate-tests=jenkins_jobs.modules.publishers:aggregate_tests', ], 'jenkins_jobs.scm': [ 'git=jenkins_jobs.modules.scm:git',