From a2f47f9e3bc6f66457dce1cf891ced4cac058ad4 Mon Sep 17 00:00:00 2001 From: Darragh Bailey Date: Wed, 13 Aug 2014 17:31:55 +0100 Subject: [PATCH] Create one parameters wrapper tag for all release params Ensure only one parameterDefinitions XML tag is created for the entire set of parameters instead of one per parameter. Add a test case to show the correct behaviour with more than one parameter defined and update the docstring to use the yaml test case as an exmaple. While updating the docstring add missing default values for arguments. Change-Id: Ife8f2535117d355d845d5d72dd9e6e6669a6b9df --- jenkins_jobs/modules/wrappers.py | 28 ++++++++---------------- tests/wrappers/fixtures/release001.xml | 29 +++++++++++++++++++++++++ tests/wrappers/fixtures/release001.yaml | 16 ++++++++++++++ 3 files changed, 54 insertions(+), 19 deletions(-) create mode 100644 tests/wrappers/fixtures/release001.xml create mode 100644 tests/wrappers/fixtures/release001.yaml diff --git a/jenkins_jobs/modules/wrappers.py b/jenkins_jobs/modules/wrappers.py index 038b17f73..3422250ca 100644 --- a/jenkins_jobs/modules/wrappers.py +++ b/jenkins_jobs/modules/wrappers.py @@ -648,27 +648,17 @@ def release(parser, xml_parent, data): :arg bool keep-forever: Keep build forever (default true) :arg bool override-build-parameters: Enable build-parameter override - :arg string version-template: Release version template + (default false) + :arg string version-template: Release version template (default '') :arg list parameters: Release parameters (see the :ref:`Parameters` module) :arg list pre-build: Pre-build steps (see the :ref:`Builders` module) :arg list post-build: Post-build steps (see :ref:`Builders`) :arg list post-success: Post successful-build steps (see :ref:`Builders`) :arg list post-failed: Post failed-build steps (see :ref:`Builders`) - Example:: + Example: - wrappers: - - release: - keep-forever: false - parameters: - - string: - name: RELEASE_BRANCH - default: '' - description: Git branch to release from. - post-success: - - shell: | - #!/bin/bash - copy_build_artefacts.sh + .. literalinclude:: /../../tests/wrappers/fixtures/release001.yaml """ relwrap = XML.SubElement(xml_parent, @@ -683,11 +673,11 @@ def release(parser, xml_parent, data): data.get('override-build-parameters', False)).lower() XML.SubElement(relwrap, 'releaseVersionTemplate').text = data.get( 'version-template', '') - for param in data.get('parameters', []): - parser.registry.dispatch('parameter', parser, - XML.SubElement(relwrap, - 'parameterDefinitions'), - param) + parameters = data.get('parameters', []) + if parameters: + pdef = XML.SubElement(relwrap, 'parameterDefinitions') + for param in parameters: + parser.registry.dispatch('parameter', parser, pdef, param) builder_steps = { 'pre-build': 'preBuildSteps', diff --git a/tests/wrappers/fixtures/release001.xml b/tests/wrappers/fixtures/release001.xml new file mode 100644 index 000000000..78af55cb3 --- /dev/null +++ b/tests/wrappers/fixtures/release001.xml @@ -0,0 +1,29 @@ + + + + + true + false + + + + RELEASE_BRANCH + Git branch to release from. + + + + FOO + A parameter named FOO, defaults to 'false'. + false + + + + + #!/bin/bash +copy_build_artefacts.sh + + + + + + diff --git a/tests/wrappers/fixtures/release001.yaml b/tests/wrappers/fixtures/release001.yaml new file mode 100644 index 000000000..a00cdfc72 --- /dev/null +++ b/tests/wrappers/fixtures/release001.yaml @@ -0,0 +1,16 @@ +wrappers: + - release: + keep-forever: false + parameters: + - string: + name: RELEASE_BRANCH + default: '' + description: Git branch to release from. + - bool: + name: FOO + default: false + description: "A parameter named FOO, defaults to 'false'." + post-success: + - shell: | + #!/bin/bash + copy_build_artefacts.sh