268 lines
8.1 KiB
YAML
Executable File
268 lines
8.1 KiB
YAML
Executable File
#!/usr/bin/env ansible-playbook
|
|
---
|
|
- name: Generate all files
|
|
hosts: localhost
|
|
become: no
|
|
gather_facts: yes
|
|
gather_subset:
|
|
- min
|
|
|
|
vars_files:
|
|
- vars/main.yml
|
|
|
|
tasks:
|
|
- name: Set role_path and role_name
|
|
ansible.builtin.set_fact:
|
|
role_path: "{{ lookup('env', 'PWD') }}"
|
|
role_name: "{{ lookup('env', 'PWD') | basename | regex_replace('ansible-role-') }}"
|
|
|
|
- name: Load generators defaults/main.yml
|
|
ansible.builtin.include_vars:
|
|
file: defaults/main.yml
|
|
|
|
- name: Load meta/main.yml
|
|
ansible.builtin.include_vars:
|
|
file: "{{ role_path }}/meta/main.yml"
|
|
name: meta
|
|
|
|
- name: Check meta/preferences.yml
|
|
ansible.builtin.stat:
|
|
path: "{{ role_path }}/meta/preferences.yml"
|
|
register: preferencesymlstat
|
|
|
|
- name: Load meta/preferences.yml
|
|
ansible.builtin.include_vars:
|
|
file: "{{ role_path }}/meta/preferences.yml"
|
|
when:
|
|
- preferencesymlstat.stat.exists
|
|
|
|
- name: Check defaults/main.yml
|
|
ansible.builtin.stat:
|
|
path: "{{ role_path }}/defaults/main.yml"
|
|
register: defaultsmainyml
|
|
|
|
- name: Load defaults/main.yml
|
|
ansible.builtin.slurp:
|
|
src: "{{ role_path }}/defaults/main.yml"
|
|
register: variables
|
|
when:
|
|
- defaultsmainyml.stat.exists
|
|
|
|
- name: Check requirements.yml
|
|
ansible.builtin.stat:
|
|
path: "{{ role_path }}/requirements.yml"
|
|
register: check_requirements
|
|
|
|
- name: Load requirements.yml
|
|
ansible.builtin.include_vars:
|
|
file: "{{ role_path }}/requirements.yml"
|
|
name: requirements
|
|
when:
|
|
- check_requirements.stat.exists
|
|
|
|
- name: Load molecule/default/converge.yml
|
|
ansible.builtin.slurp:
|
|
src: "{{ role_path }}/molecule/default/converge.yml"
|
|
register: example
|
|
|
|
- name: Check molecule/default/prepare.yml
|
|
ansible.builtin.stat:
|
|
path: "{{ role_path }}/molecule/default/prepare.yml"
|
|
register: check_prepare
|
|
|
|
- name: Load molecule/default/prepare.yml
|
|
ansible.builtin.slurp:
|
|
src: "{{ role_path }}/molecule/default/prepare.yml"
|
|
register: prepare
|
|
when:
|
|
- check_prepare.stat.exists
|
|
|
|
- name: Check molecule/default/verify.yml
|
|
ansible.builtin.stat:
|
|
path: "{{ role_path }}/molecule/default/verify.yml"
|
|
register: verify
|
|
|
|
- name: Load molecule/default/verify.yml
|
|
ansible.builtin.slurp:
|
|
src: "{{ role_path }}/molecule/default/verify.yml"
|
|
register: verifyyml
|
|
when:
|
|
- verify.stat.exists
|
|
|
|
- name: Create .github directories
|
|
ansible.builtin.file:
|
|
path: "{{ role_path }}/{{ item }}"
|
|
state: directory
|
|
mode: "0755"
|
|
loop:
|
|
- .github
|
|
- .github/workflows
|
|
- .github/ISSUE_TEMPLATE
|
|
when:
|
|
- generate_github_settings or
|
|
generate_github_action_molecule or
|
|
generate_github_action_galaxy or
|
|
generate_github_action_todo or
|
|
generate_github_funding or
|
|
generate_github_issue_template or
|
|
generate_github_feature_template
|
|
|
|
- name: Copy file
|
|
ansible.builtin.copy:
|
|
src: "{{ playbook_dir }}/files/{{ item.source }}"
|
|
dest: "{{ role_path }}/{{ item.dest | default(item.source) }}"
|
|
mode: "{{ item.mode | default('0644') }}"
|
|
with_items:
|
|
- source: gitignore
|
|
dest: .gitignore
|
|
- source: yamllint
|
|
dest: .yamllint
|
|
- source: pre-commit-config.yaml
|
|
dest: .pre-commit-config.yaml
|
|
- source: pull_request_template.md
|
|
dest: .github/pull_request_template.md
|
|
- source: requirements.txt
|
|
dest: requirements.txt
|
|
loop_control:
|
|
label: "{{ item.source }}"
|
|
|
|
- name: Render file README.md
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/README.md.j2"
|
|
dest: "{{ role_path }}/README.md"
|
|
mode: "0644"
|
|
when:
|
|
- generate_readme
|
|
|
|
- name: Render file .ansible-lint
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/ansible-lint.j2"
|
|
dest: "{{ role_path }}/.ansible-lint"
|
|
mode: "0644"
|
|
when:
|
|
- generate_ansible_lint
|
|
|
|
- name: Render file tox.ini
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/tox.ini.j2"
|
|
dest: "{{ role_path }}/tox.ini"
|
|
mode: "0644"
|
|
when:
|
|
- generate_tox
|
|
|
|
# - name: Remove tox.ini
|
|
# ansible.builtin.file:
|
|
# path: "{{ role_path }}/tox.ini"
|
|
# state: absent
|
|
|
|
- name: Render file .github/settings.yml
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/settings.yml.j2"
|
|
dest: "{{ role_path }}/.github/settings.yml"
|
|
mode: "0644"
|
|
when:
|
|
- generate_github_settings
|
|
|
|
- name: Render file LICENSE
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/LICENSE-2.0.txt.j2"
|
|
dest: "{{ role_path }}/LICENSE"
|
|
mode: "0644"
|
|
when:
|
|
- generate_license
|
|
|
|
- name: Render file SECURITY.md
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/SECURITY.md.j2"
|
|
dest: "{{ role_path }}/SECURITY.md"
|
|
mode: "0644"
|
|
when:
|
|
- generate_security
|
|
|
|
- name: Render file molecule/default/molecule.yml
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/molecule.yml.j2"
|
|
dest: "{{ role_path }}/molecule/default/molecule.yml"
|
|
mode: "0644"
|
|
when:
|
|
- generate_molecule
|
|
|
|
- name: Render file CONTRIBUTING.md
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/CONTRIBUTING.md.j2"
|
|
dest: "{{ role_path }}/CONTRIBUTING.md"
|
|
mode: "0644"
|
|
when:
|
|
- generate_contributing
|
|
|
|
- name: Render file .github/workflows/molecule.yml
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/molecule-action.yml.j2"
|
|
dest: "{{ role_path }}/.github/workflows/molecule.yml"
|
|
mode: "0644"
|
|
when:
|
|
- generate_github_action_molecule
|
|
|
|
- name: Render file .github/workflows/galaxy.yml
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/galaxy.yml.j2"
|
|
dest: "{{ role_path }}/.github/workflows/galaxy.yml"
|
|
mode: "0644"
|
|
when:
|
|
- generate_github_action_galaxy
|
|
|
|
- name: Render file .github/workflows/todo.yml
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/todo-action.yml.j2"
|
|
dest: "{{ role_path }}/.github/workflows/todo.yml"
|
|
mode: "0644"
|
|
when:
|
|
- generate_github_action_todo
|
|
|
|
- name: Render file .gitlab-ci.yml
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/gitlab-ci.yml.j2"
|
|
dest: "{{ role_path }}/.gitlab-ci.yml"
|
|
mode: "0644"
|
|
when:
|
|
- generate_gitlab_ci
|
|
|
|
- name: Render file .github/workflows/requirements2png.yml
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/requirements2png.yml.j2"
|
|
dest: "{{ role_path }}/.github/workflows/requirements2png.yml"
|
|
mode: "0644"
|
|
when:
|
|
- generate_requirements2png
|
|
|
|
- name: Render file .github/FUNDING.yml.md
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/FUNDING.yml.j2"
|
|
dest: "{{ role_path }}/.github/FUNDING.yml"
|
|
mode: "0644"
|
|
when:
|
|
- generate_github_funding
|
|
|
|
- name: Render file github/ISSUE_TEMPLATE/bug_report.md
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/bug_report.md.j2"
|
|
dest: "{{ role_path }}/.github/ISSUE_TEMPLATE/bug_report.md"
|
|
mode: "0644"
|
|
when:
|
|
- generate_github_issue_template
|
|
|
|
- name: Render file .github/ISSUE_TEMPLATE/feature_request.md
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/templates/feature_request.md.j2"
|
|
dest: "{{ role_path }}/.github/ISSUE_TEMPLATE/feature_request.md"
|
|
mode: "0644"
|
|
when:
|
|
- generate_github_feature_template
|
|
|
|
- name: Install pre-commit
|
|
ansible.builtin.command:
|
|
cmd: pre-commit install
|
|
creates: .git/hooks/pre-commit
|
|
when:
|
|
- generate_pre_commit
|