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