diff --git a/jenkins_jobs/registry.py b/jenkins_jobs/registry.py index 65a412a00..2c73744bb 100644 --- a/jenkins_jobs/registry.py +++ b/jenkins_jobs/registry.py @@ -277,6 +277,7 @@ class ModuleRegistry(object): expander = self._params_expander else: expander = self._expander + component_data = {} # It may be None. expander_params = {**component_data, **(job_data or {})} elements = macro.elements if isinstance(elements, BaseYamlObject): diff --git a/tests/yamlparser/job_fixtures/macro_with_null_params.xml b/tests/yamlparser/job_fixtures/macro_with_null_params.xml new file mode 100644 index 000000000..b6a46c944 --- /dev/null +++ b/tests/yamlparser/job_fixtures/macro_with_null_params.xml @@ -0,0 +1,19 @@ + + + + <!-- Managed by Jenkins Job Builder --> + false + false + false + false + true + + + + + echo {hello} + + + + + diff --git a/tests/yamlparser/job_fixtures/macro_with_null_params.yaml b/tests/yamlparser/job_fixtures/macro_with_null_params.yaml new file mode 100644 index 000000000..9988313a6 --- /dev/null +++ b/tests/yamlparser/job_fixtures/macro_with_null_params.yaml @@ -0,0 +1,17 @@ +- builder: + name: sample-macro + builders: + # Add parameter to check if macro behaves the same way as if no params were provided. + # That is, it should not be expanded. + - shell: 'echo {hello}' + +- job-template: + name: sample-job + builders: + # Place colon but define no parameters. + - sample-macro: + +- project: + name: sample-project + jobs: + - sample-job