diff --git a/jenkins_jobs/modules/publishers.py b/jenkins_jobs/modules/publishers.py index 153569447..849c09e12 100644 --- a/jenkins_jobs/modules/publishers.py +++ b/jenkins_jobs/modules/publishers.py @@ -3416,6 +3416,27 @@ def ruby_metrics(parser, xml_parent, data): raise JenkinsJobsException('Coverage metric targets must be set') +def fitnesse(parser, xml_parent, data): + """yaml: fitnesse + Publish Fitnesse test results + + Requires the Jenkins `Fitnesse plugin. + `_ + + :arg str results: path specifier for results files + + Example: + + .. literalinclude:: /../../tests/publishers/fixtures/fitnesse001.yaml + + """ + fitnesse = XML.SubElement( + xml_parent, + 'hudson.plugins.fitnesse.FitnesseResultsRecorder') + results = data.get('results', '') + XML.SubElement(fitnesse, 'fitnessePathToXmlResultsIn').text = results + + class Publishers(jenkins_jobs.modules.base.Base): sequence = 70 diff --git a/setup.cfg b/setup.cfg index b3ee88ab0..a0f89920a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -114,6 +114,7 @@ jenkins_jobs.publishers = email=jenkins_jobs.modules.publishers:email emotional-jenkins=jenkins_jobs.modules.publishers:emotional_jenkins fingerprint=jenkins_jobs.modules.publishers:fingerprint + fitnesse=jenkins_jobs.modules.publishers:fitnesse ftp=jenkins_jobs.modules.publishers:ftp git=jenkins_jobs.modules.publishers:git github-notifier=jenkins_jobs.modules.publishers:github_notifier diff --git a/tests/publishers/fixtures/fitnesse001.xml b/tests/publishers/fixtures/fitnesse001.xml new file mode 100644 index 000000000..08be4a294 --- /dev/null +++ b/tests/publishers/fixtures/fitnesse001.xml @@ -0,0 +1,8 @@ + + + + + fitnesse-results/**/*.xml + + + diff --git a/tests/publishers/fixtures/fitnesse001.yaml b/tests/publishers/fixtures/fitnesse001.yaml new file mode 100644 index 000000000..17a8fb250 --- /dev/null +++ b/tests/publishers/fixtures/fitnesse001.yaml @@ -0,0 +1,3 @@ +publishers: + - fitnesse: + results: "fitnesse-results/**/*.xml"