--- # Copyright 2019 Red Hat, Inc. # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. - name: Create a new role for TripleO-Ansible hosts: localhost connection: local gather_facts: false tasks: - name: Check for role name fail: msg: >- The required variable `role_name` is undefined. Check your settings. when: - role_name is undefined - name: Create role command: >- ansible-galaxy init --role-skeleton=_skeleton_role_ --init-path=tripleo_ansible/roles {{ role_name }} args: creates: "tripleo_ansible/roles/{{ role_name }}" - name: Read zuul molecule file slurp: src: zuul.d/molecule.yaml register: molecule_yaml - name: Create molecule entry copy: content: |- --- {% set items = molecule_yaml['content'] | b64decode | from_yaml %} {% set job_index = [] %} {% set new_job_name = "tripleo-ansible-centos-7-molecule-" ~ role_name %} {% for item in items %} {% if 'project-template' in item %} {% if item['project-template']['name'] == "tripleo-ansible-molecule-jobs" %} {% if not (new_job_name in item['project-template']['check']['jobs']) %} {% set _ = item['project-template']['check']['jobs'].append(new_job_name) %} {% endif %} {% if not (new_job_name in item['project-template']['gate']['jobs']) %} {% set _ = item['project-template']['gate']['jobs'].append(new_job_name) %} {% endif %} {% endif %} {% else %} {% if item['job']['name'] == new_job_name %} {% set _ = job_index.append(new_job_name) %} {% endif %} {% endif %} {% endfor %} {% if (job_index | length) < 1 %} {% set new_job = { "name": new_job_name, "parent": "tripleo-ansible-centos-7-base", "files": [ "^tripleo_ansible/roles/" ~ role_name ~ "/.*" ], "vars": { "tripleo_role_name": role_name } } %} {% set _ = items.append({"job": new_job}) %} {% endif %} {{ items | to_nice_yaml(indent=2, width=1337) }} dest: zuul.d/molecule.yaml - name: Create role documentation copy: content: | {% set opening = 'Role - ' ~ role_name %} {{ '=' * (opening | length) }} {{ opening }} {{ '=' * (opening | length) }} .. ansibleautoplugin:: :role: tripleo_ansible/roles/{{ role_name }} dest: "doc/source/roles/role-{{ role_name }}.rst"