From cc29577f73da1c6227461731f04d37c244b29a0e Mon Sep 17 00:00:00 2001 From: "Gael Chamoulaud (Strider)" Date: Thu, 24 Jun 2021 13:06:43 +0200 Subject: [PATCH] Sort jobs in molecule.yaml file when adding new role This patch adds a mechanism to keep the job names in zuul.d/molecule.yaml sorted. Therefore, the to_nice_yaml filter is not indenting lists correctly, due to [1][2]. [1] https://github.com/ansible/ansible/issues/48865 [2] https://github.com/yaml/pyyaml/issues/234 Signed-off-by: Gael Chamoulaud (Strider) Change-Id: Ia8f787631c55fabb3a097919971d17b93711d4b7 (cherry picked from commit ae59abe62c65aaa7286090e2d1b98508d6c7ff6f) --- roles/validation_init/tasks/main.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/roles/validation_init/tasks/main.yml b/roles/validation_init/tasks/main.yml index 008d889a..ef66218f 100644 --- a/roles/validation_init/tasks/main.yml +++ b/roles/validation_init/tasks/main.yml @@ -120,6 +120,8 @@ - name: Create molecule entry copy: content: |- + # Managed via ./role-addition.yml, do not edit manually without testing that + # new role addition does not reformat it. --- {% set items = molecule_yaml['content'] | b64decode | from_yaml %} {% set job_index = [] %} @@ -158,11 +160,14 @@ "vars": { "tripleo_validations_role_name": validation_init_prefix ~ "_" ~ _role_name } - } + } %} {% set _ = items.append({"job": new_job}) %} {% endif %} - {{ items | to_nice_yaml(indent=2, width=1337) }} + {% set project = items.pop(0) %} + {% set sorted_jobs = items | sort(attribute='job.name') %} + {% set _ = sorted_jobs.insert(0, project) %} + {{ sorted_jobs | to_nice_yaml(indent=2, width=1337) }} dest: "{{ validation_init_zuuld_molecule }}" - name: Create role documentation