Description Setter Plugin support added

This plugin sets the description for each build,
based upon a RegEx test of the build log file.

Change-Id: If3c8b3ec6e9c23ffe74a5e857618267936a0e989
This commit is contained in:
Sergey Kolekonov 2013-12-07 19:46:14 +04:00
parent 04be0f43ad
commit 7c4a7203df
4 changed files with 60 additions and 0 deletions

View File

@ -2916,6 +2916,45 @@ def stash(parser, xml_parent, data):
data.get('include-build-number', False)).lower()
def description_setter(parser, xml_parent, data):
"""yaml: description-setter
This plugin sets the description for each build,
based upon a RegEx test of the build log file.
Requires the Jenkins `Description Setter Plugin.
<https://wiki.jenkins-ci.org/display/JENKINS/Description+Setter+Plugin>`_
:arg str regexp: A RegEx which is used to scan the build log file
:arg str regexp-for-failed: A RegEx which is used for failed builds
(optional)
:arg str description: The description to set on the build (optional)
:arg str description-for-failed: The description to set on
the failed builds (optional)
:arg bool set-for-matrix: Also set the description on
a multi-configuration build (Default False)
Example:
.. literalinclude:: ../../tests/publishers/fixtures/description-setter.yaml
"""
descriptionsetter = XML.SubElement(
xml_parent,
'hudson.plugins.descriptionsetter.DescriptionSetterPublisher')
XML.SubElement(descriptionsetter, 'regexp').text = data.get('regexp', '')
XML.SubElement(descriptionsetter, 'regexpForFailed').text = \
data.get('regexp-for-failed', '')
if 'description' in data:
XML.SubElement(descriptionsetter, 'description').text = \
data['description']
if 'description-for-failed' in data:
XML.SubElement(descriptionsetter, 'descriptionForFailed').text = \
data['description-for-failed']
for_matrix = str(data.get('set-for-matrix', False)).lower()
XML.SubElement(descriptionsetter, 'setForMatrix').text = for_matrix
class Publishers(jenkins_jobs.modules.base.Base):
sequence = 70

View File

@ -130,6 +130,8 @@ setuptools.setup(
'copy-to-master=jenkins_jobs.modules.publishers:copy_to_master',
'coverage=jenkins_jobs.modules.publishers:coverage',
'cppcheck=jenkins_jobs.modules.publishers:cppcheck',
('description-setter=jenkins_jobs.modules.publishers:'
'description_setter'),
'email=jenkins_jobs.modules.publishers:email',
'email-ext=jenkins_jobs.modules.publishers:email_ext',
('emotional-jenkins=jenkins_jobs.modules.publishers:'

View File

@ -0,0 +1,12 @@
<?xml version="1.0" ?>
<project>
<publishers>
<hudson.plugins.descriptionsetter.DescriptionSetterPublisher>
<regexp>.*(&lt;a href=.*a&gt;)</regexp>
<regexpForFailed>.*(&lt;a href=.*a&gt;)</regexpForFailed>
<description>some description</description>
<descriptionForFailed>another description</descriptionForFailed>
<setForMatrix>true</setForMatrix>
</hudson.plugins.descriptionsetter.DescriptionSetterPublisher>
</publishers>
</project>

View File

@ -0,0 +1,7 @@
publishers:
- description-setter:
regexp: ".*(<a href=.*a>)"
regexp-for-failed: ".*(<a href=.*a>)"
description: "some description"
description-for-failed: "another description"
set-for-matrix: true