diff --git a/CHANGELOG.md b/CHANGELOG.md index aaadc62..63a1217 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ This project adheres to [Semantic Versioning](http://semver.org/) and [Keep a ch ### Changed ### Removed +## [2.4.0](https://github.com/idealista/cookiecutter-ansible-role/tree/2.4.0) +### [Full Changelog](https://github.com/idealista/cookiecutter-ansible-role/compare/2.3.0...2.4.0) +### 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 + ## [2.3.0](https://github.com/idealista/cookiecutter-ansible-role/tree/2.3.0) ### [Full Changelog](https://github.com/idealista/cookiecutter-ansible-role/compare/2.2.0...2.3.0) ### Fixed 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 99b5a85..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 %} @@ -84,7 +84,7 @@ $ pipenv run molecule test ![Ansible](https://img.shields.io/badge/ansible-{{ cookiecutter.ansible_version }}-green.svg) ![Molecule](https://img.shields.io/badge/molecule-{{ cookiecutter.molecule_version }}-green.svg) -![Goss](https://img.shields.io/badge/goss-0.3.14-green.svg) +![Goss](https://img.shields.io/badge/goss-0.3.16-green.svg) ## Versioning 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: +# - '::' diff --git a/{{cookiecutter.app_name}}_role/molecule/default/verify.yml b/{{cookiecutter.app_name}}_role/molecule/default/verify.yml index b2dc65b..2a35a84 100644 --- a/{{cookiecutter.app_name}}_role/molecule/default/verify.yml +++ b/{{cookiecutter.app_name}}_role/molecule/default/verify.yml @@ -8,10 +8,10 @@ - {{ cookiecutter.app_name }} become: true vars: - goss_version: v0.3.14 + goss_version: v0.3.16 goss_arch: amd64 goss_dst: /usr/local/bin/goss - goss_sha256sum: 26c481073d346028451d56af600a71ec2d6c7bc960c3e207f610e32c5e1f5144 + goss_sha256sum: 827e354b48f93bce933f5efcd1f00dc82569c42a179cf2d384b040d8a80bfbfb goss_url: "https://github.com/aelsabbahy/goss/releases/download/{% raw %}{{{% endraw %} goss_version {% raw %}}}{% endraw %}/goss-linux-{% raw %}{{{% endraw %} goss_arch {% raw %}}}{% endraw %}" goss_test_directory: /tmp goss_format: documentation diff --git a/{{cookiecutter.app_name}}_role/{% raw %}.travis.yml{% endraw %} b/{{cookiecutter.app_name}}_role/{% raw %}.travis.yml{% endraw %} index 3330fa5..e14d6b9 100644 --- a/{{cookiecutter.app_name}}_role/{% raw %}.travis.yml{% endraw %} +++ b/{{cookiecutter.app_name}}_role/{% raw %}.travis.yml{% endraw %} @@ -13,7 +13,7 @@ env: {% if cookiecutter.debian_stretch_support == 'True' %}- MOLECULE_DISTRO=debian:stretch-slim{% endif %} {% if cookiecutter.debian_buster_support == 'True' %}- MOLECULE_DISTRO=debian:buster-slim{% endif %} script: - - pipenv run molecule test + - pipenv run molecule test --all notifications: - webhooks: https://galaxy.ansible.com/api/v1/notifications/ \ No newline at end of file + webhooks: https://galaxy.ansible.com/api/v1/notifications/