summaryrefslogtreecommitdiffstats
path: root/jenkins_jobs/modules/publishers.py
diff options
context:
space:
mode:
authortanhengyeow <E0032242@u.nus.edu>2018-09-02 20:13:49 +0800
committerAnil Belur <askb23@gmail.com>2018-12-07 20:09:28 +1000
commit2914c7a773ddee1567ce430480703f94e4b11cbd (patch)
tree8e7714c89853ba8735f03b2dd0c1c5b7e06f95ad /jenkins_jobs/modules/publishers.py
parent02e85408f027f831ef00cb812ea66ddcdd226170 (diff)
downloadpython-jenkins-job-builder-2914c7a773ddee1567ce430480703f94e4b11cbd.tar.gz
python-jenkins-job-builder-2914c7a773ddee1567ce430480703f94e4b11cbd.tar.xz
python-jenkins-job-builder-2914c7a773ddee1567ce430480703f94e4b11cbd.zip
cucumber-reports: Add support for new options
Change-Id: Ia447c8ab95d6ea9782ba0092c42b95571625b97f Co-Authored-By: Anil Belur <askb23@gmail.com> Signed-off-by: Tan Heng Yeow <E0032242@u.nus.edu> Signed-off-by: Anil Belur <askb23@gmail.com>
Diffstat (limited to 'jenkins_jobs/modules/publishers.py')
-rw-r--r--jenkins_jobs/modules/publishers.py47
1 files changed, 46 insertions, 1 deletions
diff --git a/jenkins_jobs/modules/publishers.py b/jenkins_jobs/modules/publishers.py
index cd3b99ff..d10786c8 100644
--- a/jenkins_jobs/modules/publishers.py
+++ b/jenkins_jobs/modules/publishers.py
@@ -1361,6 +1361,23 @@ def cucumber_reports(registry, xml_parent, data):
(default false)
:arg bool parallel-testing: Run same test in parallel for multiple devices
(default false)
+ :arg int failed-steps-number: Maximum number of failed steps above which
+ build result is changed (default 0)
+ :arg int skipped-steps-number: Maximum number of skipped steps above which
+ build result is changed (default 0)
+ :arg int pending-steps-number: Maximum number of pending steps above which
+ build result is changed (default 0)
+ :arg int undefined-steps-number: Maximum number of undefined steps above
+ which build result is changed (default 0)
+ :arg int failed-scenarios-number: Maximum number of failed scenarios above
+ which build result is changed (default 0)
+ :arg int failed-features-number: Maximum number of failed features above
+ which build result is changed (default 0)
+ :arg list build-status: Build result to which the build should be set
+ when the report becomes failed or unstable (default '')
+ :arg int trends-limit: Number of past reports that should be presented.
+ Zero means unlimited number of builds (default 0)
+ :arg list sorting-method: Result sorting order (default 'NATURAL')
Full example:
@@ -1379,6 +1396,8 @@ def cucumber_reports(registry, xml_parent, data):
'CucumberReportPublisher')
cucumber_reports.set('plugin', 'cucumber-reports')
+ valid_build_status = ['', 'UNSTABLE', 'FAILURE']
+ valid_sorting_method = ['NATURAL', 'ALPHABETICAL']
mappings = [
('json-reports-path', 'jsonReportDirectory', ''),
('plugin-url-path', 'pluginUrlPath', ''),
@@ -1390,11 +1409,37 @@ def cucumber_reports(registry, xml_parent, data):
('missing-fails', 'missingFails', False),
('no-flash-charts', 'noFlashCharts', False),
('ignore-failed-tests', 'ignoreFailedTests', False),
- ('parallel-testing', 'parallelTesting', False)
+ ('parallel-testing', 'parallelTesting', False),
+ ('failed-steps-number', 'failedStepsNumber', 0),
+ ('skipped-steps-number', 'skippedStepsNumber', 0),
+ ('pending-steps-number', 'pendingStepsNumber', 0),
+ ('undefined-steps-number', 'undefinedStepsNumber', 0),
+ ('failed-scenarios-number', 'failedScenariosNumber', 0),
+ ('failed-features-number', 'failedFeaturesNumber', 0),
+ ('build-status', 'buildStatus', '', valid_build_status),
+ ('trends-limit', 'trendsLimit', 0),
+ ('sorting-method', 'sortingMethod', 'NATURAL', valid_sorting_method),
]
helpers.convert_mapping_to_xml(
cucumber_reports, data, mappings, fail_required=True)
+ if 'sorting-values' in data:
+ format_dict = {
+ 'classifications': 'net.masterthought.jenkins'
+ '.CucumberReportPublisher_-Classification'
+ }
+ classifications_tag = XML.SubElement(
+ cucumber_reports, 'classifications')
+ for values in data['sorting-values']:
+ for value, params in values.items():
+ cucumber_report_publisher = XML.SubElement(
+ classifications_tag, format_dict.get('classifications'))
+ XML.SubElement(
+ cucumber_report_publisher, 'key').text = params.get('key')
+ XML.SubElement(
+ cucumber_report_publisher, 'value').text = params.get(
+ 'value')
+
def cucumber_testresult(registry, xml_parent, data):
"""yaml: cucumber-testresult