diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a38d69..e67cf63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,8 +5,10 @@ This project adheres to [Semantic Versioning](http://semver.org/) and [Keep a ch ## Unreleased ### Fixed ### Added +- *[#45](https://github.com/idealista/cookiecutter-ansible-role/issues/45) Documentation link provided on role generation* @xtianae7 ### Changed - *[#47](https://github.com/idealista/cookiecutter-ansible-role/pull/47) Bump goss version from 0.3.14 to 0.3.16* @vicsufer +- *[#46](https://github.com/idealista/cookiecutter-ansible-role/issues/46) Static tests instead of parameters* @xtianae7 ### Removed ## [2.3.0](https://github.com/idealista/cookiecutter-ansible-role/tree/2.3.0) diff --git a/README.md b/README.md index d2d88ad..8086ff9 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Cookiecutter Ansible Role ![Logo](https://raw.githubusercontent.com/idealista/cookiecutter-ansible-role/master/logo.gif) -[![Build Status](https://travis-ci.org/idealista/cookiecutter-ansible-role.png)](https://travis-ci.org/idealista/cookiecutter-ansible-role) +[![Build Status](https://travis-ci.com/idealista/cookiecutter-ansible-role.png)](https://travis-ci.com/idealista/cookiecutter-ansible-role) @@ -79,6 +79,7 @@ Select has_templates: 1 - True 2 - False Choose from 1, 2 [1]: +documentation_URL: https://cli.github.com/manual/ ``` It will create the following file structure: diff --git a/cookiecutter.json b/cookiecutter.json index d82c50d..c5e397e 100644 --- a/cookiecutter.json +++ b/cookiecutter.json @@ -21,5 +21,6 @@ "has_files":["True", "False"], "comment_2":"If there is service the following options will not have any effect", "has_handlers":["True", "False"], - "has_templates":["True", "False"] + "has_templates":["True", "False"], + "documentation_URL":"" } diff --git a/test.sh b/test.sh index ca19a0c..7dd7e65 100755 --- a/test.sh +++ b/test.sh @@ -3,7 +3,7 @@ set -e # Generate role -printf "cookiecutter==1.7.2\nJinja2==2.11.2" > requirements.txt && pipenv install -r requirements.txt && pipenv run cookiecutter . --no-input app_name="github_cli" exec_name="gh" author="John Doe" min_ansible_version="2.2" ansible_version="2.8.6" molecule_version="3.0.1" python_docker_version="4.1.0" ansible_lint_version="4.2.0" has_service="False" has_files="False" has_handlers="False" has_templates="False" && rm Pipfile* requirements.txt +printf "cookiecutter==1.7.2\nJinja2==2.11.2" > requirements.txt && pipenv install -r requirements.txt && pipenv run cookiecutter . --no-input app_name="github_cli" exec_name="gh" author="John Doe" min_ansible_version="2.2" ansible_version="2.8.6" molecule_version="3.0.1" python_docker_version="4.1.0" ansible_lint_version="4.2.0" has_service="False" has_files="False" has_handlers="False" has_templates="False" documentation_URL="https://cli.github.com/manual/" && rm Pipfile* requirements.txt ( # Adjust the role to test cd github_cli_role diff --git a/{{cookiecutter.app_name}}_role/README.md b/{{cookiecutter.app_name}}_role/README.md index e19fcc5..af2d679 100644 --- a/{{cookiecutter.app_name}}_role/README.md +++ b/{{cookiecutter.app_name}}_role/README.md @@ -6,7 +6,7 @@ -This ansible role installs [{{ cookiecutter.app_name | replace('_',' ') | title }}](APP_URL_HERE) in a Debian environment. It has been tested for the following Debian versions: +This ansible role installs {% if cookiecutter.documentation_URL != "" %}[{% endif %}{{ cookiecutter.app_name | replace('_',' ') | title }}{% if cookiecutter.documentation_URL != "" %}]({{ cookiecutter.documentation_URL }}){% endif %} in a Debian environment. It has been tested for the following Debian versions: {% if cookiecutter.debian_stretch_support == 'True' %}* Stretch{% endif %} {% if cookiecutter.debian_buster_support == 'True' %}* Buster{% endif %} diff --git a/{{cookiecutter.app_name}}_role/defaults/main.yml b/{{cookiecutter.app_name}}_role/defaults/main.yml index b483174..13f9995 100644 --- a/{{cookiecutter.app_name}}_role/defaults/main.yml +++ b/{{cookiecutter.app_name}}_role/defaults/main.yml @@ -27,7 +27,7 @@ {% if cookiecutter.has_service == 'True' %} ## Service options # Documentation -{{ cookiecutter.app_name }}_documentation_link: https://www.example.documentation.com +{{ cookiecutter.app_name }}_documentation_link: "{{ cookiecutter.documentation_URL }}" # Owner {{ cookiecutter.app_name }}_user: exampleuser diff --git a/{{cookiecutter.app_name}}_role/molecule/default/tests/test_app.yml b/{{cookiecutter.app_name}}_role/molecule/default/tests/test_app.yml index 7b5b857..60cbadd 100644 --- a/{{cookiecutter.app_name}}_role/molecule/default/tests/test_app.yml +++ b/{{cookiecutter.app_name}}_role/molecule/default/tests/test_app.yml @@ -1,36 +1,46 @@ --- - -file: - {% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_bin_path {% raw %}}}{% endraw %}: - {% if cookiecutter.has_service == 'True' %} - owner: {% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_user {% raw %}}}{% endraw %} - group: {% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_group {% raw %}}}{% endraw %} - {% endif %} - exists: true - filetype: directory +## TODO: Remember to adapt goss tests to your convenience {% if cookiecutter.has_service == 'True' %} -# port: -# # Check port at IPv6 -# # https://github.com/aelsabbahy/goss/issues/177 -# tcp6:{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_port {% raw %}}}{% endraw %}: -# listening: true -# ip: -# - '::' - service: {{ cookiecutter.app_name }}: enabled: true - running: true -process: - {% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_exec_name {% raw %}}}{% endraw %}: running: true + +process: + {{ cookiecutter.exec_name }}: + running: true + user: - {% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_user {% raw %}}}{% endraw %}: - exists: true - groups: - - {% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_group {% raw %}}}{% endraw %} - shell: /usr/sbin/nologin + exampleuser: + exists: true + groups: + - examplegroup + shell: /usr/sbin/nologin group: - {% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_group {% raw %}}}{% endraw %}: + examplegroup: exists: true -{% endif %} \ No newline at end of file +{% endif %} +file: + /opt/{{ cookiecutter.app_name }}: + {% if cookiecutter.has_service == 'True' %} + owner: exampleuser + group: examplegroup + {% endif %} + exists: true + filetype: directory + /opt/{{ cookiecutter.app_name }}/bin: + {% if cookiecutter.has_service == 'True' %} + owner: exampleuser + group: examplegroup + {% endif %} + exists: true + filetype: directory + +## Check if ports are really exposed +# port: +# # Check port at IPv6 +# # https://github.com/aelsabbahy/goss/issues/177 +# tcp6:: +# listening: true +# ip: +# - '::'