Compare commits

...

82 Commits

Author SHA1 Message Date
Robert de Bock 5623672ed2 This action has a new version. 2024-09-12 15:06:33 +02:00
Robert de Bock 1d3d5007fd Pass all variables. 2024-08-30 14:35:56 +02:00
Robert de Bock d50237a72d More detail. 2024-08-21 09:23:03 +02:00
Robert de Bock ad61a0cad3 Different tox. 2024-08-21 09:22:47 +02:00
Robert de Bock 592357a35b Test multiple versions of python. 2024-07-20 08:10:28 +02:00
Robert de Bock 66bab3efda Tox reintroduced. 2024-07-20 08:10:10 +02:00
Robert de Bock d9fa8aa593 These should be quoted to match. 2024-07-12 21:47:27 +02:00
Robert de Bock e35a262476 Python2 is not supported anymore. 2024-07-02 09:17:15 +02:00
Robert de Bock 3b0f680563 Cleanup. 2024-07-01 15:18:24 +02:00
Robert de Bock 8789540434 Not RHEL, nor OpenSUSE. 2024-07-01 14:59:19 +02:00
Robert de Bock d939fe5214 Write is required. 2024-07-01 14:58:20 +02:00
Robert de Bock ebdb95d640 Simpler. 2024-07-01 14:57:47 +02:00
Robert de Bock f5f7444a59 This is a static file. 2024-07-01 14:54:28 +02:00
Robert de Bock 0caad4d975 Ansible 10. 2024-06-10 20:41:58 +02:00
Robert de Bock a3ff4a0ee5 Disable tox for now. 2024-05-23 08:35:33 +02:00
Robert de Bock 3ecb38499b Ubuntu noble added, drop bionic. 2024-04-25 13:24:18 +02:00
Robert de Bock 6e2afc05c6 Fedora 40. 2024-04-24 07:48:53 +02:00
Robert de Bock 15cddd986c More booleans. 2024-03-20 11:26:21 +01:00
Robert de Bock 1eacee4cc4 more yes no 2024-03-18 09:37:07 +01:00
Robert de Bock 2418dd9332 Change to true/false. 2024-03-18 09:05:47 +01:00
Robert de Bock fc3c738fb5 Finally: yes and no. 2024-03-15 10:34:02 +01:00
Robert de Bock a9b3e1d7f7 Two minor fixes. 2024-03-04 09:14:01 +01:00
Robert de Bock c0cf49ebc1 Newer version of the checkout action. 2024-01-30 11:27:18 +01:00
Robert de Bock 6b5112377b Galaxy ID is not used anymore. 2024-01-02 09:04:10 +01:00
Robert de Bock 988467b8c0 Brace fix. 2024-01-02 08:54:02 +01:00
Robert de Bock eef1e3a36c New badge for downloads. 2024-01-02 08:50:27 +01:00
Robert de Bock 2cef955aa5 Correct destination. 2023-12-19 07:59:02 +01:00
Robert de Bock 1e6ba8596a More tests. 2023-12-18 12:12:43 +01:00
Robert de Bock b48a863ffd Only when they exist. 2023-12-18 11:56:36 +01:00
Robert de Bock 5a52a69bde Only when it exists. 2023-12-18 11:55:34 +01:00
Robert de Bock ff5c174cf8 Only when it exists. 2023-12-18 11:52:38 +01:00
Robert de Bock 5663ddc235 See if file exists, otherwise use no file. 2023-12-18 11:48:49 +01:00
Robert de Bock 17bd761e04 Different way to test. 2023-12-18 11:43:47 +01:00
Robert de Bock 2ce8df660e A bit more explicit. 2023-12-18 11:41:26 +01:00
Robert de Bock 64ff1a4bfb Rename to file. 2023-12-18 11:38:47 +01:00
Robert de Bock 5961aa5a37 Unrecognized named-value: 'generate_config'. 2023-12-18 11:35:32 +01:00
Robert de Bock 9696f517a0 [trailing-spaces] trailing spaces 2023-12-18 11:34:41 +01:00
Robert de Bock 7678aa6345 Always load stuff, it's used in (too) many locations. 2023-12-18 11:32:58 +01:00
Robert de Bock 43311e24d0 Split files in tasks, so conditions can be applied. 2023-12-18 11:29:28 +01:00
Robert de Bock e6e8badd6d Use a file to configuring generate.yml 2023-12-18 11:12:18 +01:00
Robert de Bock e3bd44c57b This should be read. 2023-12-18 11:12:03 +01:00
Robert de Bock a9ed516ad3 Attempt to make this more consumable. 2023-12-18 11:04:40 +01:00
Robert de Bock 0eca30be66 Not on every branch. 2023-12-18 10:34:49 +01:00
Robert de Bock da215004e8 Lint issues fixed. 2023-12-18 10:34:42 +01:00
Robert de Bock 6aaec06196 Ansible 9. 2023-11-27 08:32:54 +01:00
Robert de Bock 7f3110bbb1 Fedora 39 is here. 2023-11-13 07:59:21 +01:00
Robert de Bock 48537a0559 Only 8 now, 6 & 7 with Fedora have an issue. 2023-11-13 07:59:10 +01:00
Robert de Bock 8f13c67d23 Update components for tox. 2023-11-13 07:58:52 +01:00
Robert de Bock e62dd6124e Better title. 2023-11-13 07:58:39 +01:00
Robert de Bock cfa9b47a06 Disable some hopefully old stuff. 2023-11-13 07:58:29 +01:00
Robert de Bock 81aaab5109 Update action + container. 2023-11-13 07:58:14 +01:00
Robert de Bock b8b5b017ec Improve title. 2023-11-13 07:58:00 +01:00
Robert de Bock 65bb9b9d0c Variable namespace. 2023-11-09 10:10:51 +01:00
Robert de Bock f97b2f4645 Sponsoring is optional. 2023-11-09 10:09:34 +01:00
Robert de Bock 0c8b18936f As a vertical list. 2023-11-09 10:09:11 +01:00
Robert de Bock b2f4ad5abd Fixing things. 2023-11-09 10:05:50 +01:00
Robert de Bock fff8834c30 Point to public repos. 2023-11-09 10:00:58 +01:00
Robert de Bock d7ac20605e Allow a custom message. 2023-11-09 10:00:44 +01:00
Robert de Bock 5eb9baeba0 Sponsoring is optional. 2023-11-09 10:00:21 +01:00
Robert de Bock c390ce619c Remove quality column. 2023-11-01 16:03:48 +01:00
Robert de Bock 222e766425 Remove quality. 2023-11-01 15:54:14 +01:00
Robert de Bock 853078057c A line ends with a dot (.). 2023-10-31 14:43:31 +01:00
Robert de Bock 77602299d0 Not duplicate. 2023-09-25 09:52:25 +02:00
Robert de Bock e59a7751d8 Any version of Python 3. 2023-09-25 08:09:47 +02:00
Robert de Bock 0e51c7a1d4 Update and variablize then container to use in GitLab CI. 2023-09-25 07:56:40 +02:00
Robert de Bock 9ea1123018 Make mroe consumable. 2023-09-24 10:28:41 +02:00
Robert de Bock d7f82e1028 Fix Debian mess-up. 2023-09-24 10:27:39 +02:00
Robert de Bock c4cc5483cb New action required new container with new python. 2023-09-24 10:27:30 +02:00
Robert de Bock 03622da003 New action. 2023-09-24 10:27:16 +02:00
Robert de Bock 61832be397 Newer fedora. 2023-09-24 10:27:00 +02:00
Robert de Bock 40d30a92f4 Ansible Lint changed a bit. 2023-07-12 12:35:33 +02:00
Robert de Bock a97c67a6ae Disable fedora rawhide for now. 2023-07-12 12:35:23 +02:00
Robert de Bock 2f19fff1dd Fedora 38! 2023-07-12 12:35:10 +02:00
Robert de Bock 923c21c379 Bump components. 2023-06-12 16:53:02 +02:00
Robert de Bock f185186a16 Ansible 8. 2023-06-12 09:16:18 +02:00
Robert de Bock d103de16c3 Not this. 2023-05-22 12:25:19 +02:00
Robert de Bock 2f31b1d446 Opt in to filestem prefixes in name. 2023-05-22 12:23:54 +02:00
Robert de Bock ae8690ad8d Remove not-required stuff, add permission for PNG, skip truthy. 2023-05-10 10:40:53 +02:00
Robert de Bock 171d2e0a57 Clean it up. 2023-05-03 08:07:09 +02:00
Robert de Bock 46a85427d7 Python packages into their own file. 2023-05-03 07:58:01 +02:00
Robert de Bock b0e70c6b60 Ready for molecule 5. 2023-04-20 15:35:48 +02:00
Robert de Bock 7aa5350590 Fix for SECURITY.md 2023-03-08 16:43:02 +01:00
30 changed files with 538 additions and 207 deletions

View File

@ -16,10 +16,27 @@ jobs:
- role: ansible-role-preferences
- role: ansible-role-minimal
- role: ansible-role-version
- role: ansible-role-default
generate_config_file: generate_config_only_readme.yml
- role: ansible-role-default
generate_config_file: generate_config_no_tox.yml
- role: ansible-role-default
generate_config_file: generate_config_no_pre_commit.yml
- role: ansible-role-default
generate_config_file: generate_config_no_gitlab.yml
- role: ansible-role-default
generate_config_file: generate_config_no_github.yml
steps:
- name: checkout
uses: actions/checkout@v3
- run: |
pip install pre-commit
cd tests/${{ matrix.config.role }}
../../generate.yml
if [ -f "${{ matrix.config.generate_config_file }}" ]; then
echo "Testing generating files defined in ${{ matrix.config.generate_config_file }}."
../../generate.yml --extra-vars @${{ matrix.config.generate_config_file }}
else
echo "Testing generating all default files."
../../generate.yml
fi

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.DS_Store

View File

@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2023 Robert de Bock (robert@meinit.nl)
Copyright 2024 Robert de Bock (robert@meinit.nl)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -24,9 +24,9 @@ The intention is to focus on writing or maintaining the Ansible role, and use th
| templates/* | | | molecule/default/molecule.yml |
+-------------------+ | +--- this tool ---+ | .github/workflows/requirements2png.yml |
+--> | generate.yml | --> | SECURITY.md |
+--- Galaxy ---+ | +-----------------+ | settings.yml |
| galaxy_id | --------+ | .github/workflows/todo.yml |
+--------------+ | .tox.ini |
+-----------------+ | settings.yml |
| .github/workflows/todo.yml |
| .tox.ini |
+----------------------------------------+
```

View File

@ -19,3 +19,37 @@ author: Robert de Bock (robert@meinit.nl)
# The full URL to your website.
author_website: "https://robertdebock.nl/"
# The container to use for GitLab CI.
gitlab_container: "robertdebock/github-action-molecule:6.0.1"
# The molecule action to use.
molecule_action: "robertdebock/molecule-action@6.0.1"
# Would you like to add a sponsor message?
sponsored_message: yes
# A custom message can be placed with this content.
custom_message: "Also see a [full explanation and example](https://robertdebock.nl/how-to-use-these-roles.html) on how to use these roles."
# The below settings determine what the generator will generate.
generate_gitignore: yes
generate_yamllint: yes
generate_pre_commit: yes
generate_readme: yes
generate_ansible_lint: yes
generate_tox: yes
generate_github_settings: yes
generate_license: yes
generate_security: yes
generate_molecule: yes
generate_contributing: yes
generate_github_action_molecule: yes
generate_github_action_galaxy: yes
generate_github_action_todo: yes
generate_gitlab_ci: yes
generate_requirements2png: yes
generate_github_funding: yes
generate_github_issue_template: yes
generate_github_feature_template: yes
generate_install_pre_commit: yes

View File

@ -1,17 +1,18 @@
---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
rev: v4.4.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-added-large-files
- repo: https://github.com/adrienverge/yamllint
rev: v1.26.3
rev: v1.32.0
hooks:
- id: yamllint
args: [-c=.yamllint]
args:
- -c=.yamllint
- repo: https://github.com/robertdebock/pre-commit
rev: v1.5.2

View File

@ -0,0 +1,11 @@
---
name: Pull request
about: Describe the proposed change
---
**Describe the change**
A clear and concise description of what the pull request is.
**Testing**
In case a feature was added, how were tests performed?

3
files/requirements.txt Normal file
View File

@ -0,0 +1,3 @@
molecule
molecule-plugins[docker]
paramiko

View File

@ -9,7 +9,8 @@ rules:
max-spaces-inside: 1
level: error
line-length: disable
truthy: disable
truthy:
check-keys: false
ignore: |
.tox/

View File

@ -34,7 +34,7 @@
ansible.builtin.include_vars:
file: "{{ role_path }}/meta/preferences.yml"
when:
- preferencesymlstat.stat.exists | bool
- preferencesymlstat.stat.exists
- name: Check defaults/main.yml
ansible.builtin.stat:
@ -46,7 +46,7 @@
src: "{{ role_path }}/defaults/main.yml"
register: variables
when:
- defaultsmainyml.stat.exists | bool
- defaultsmainyml.stat.exists
- name: Check requirements.yml
ansible.builtin.stat:
@ -58,7 +58,7 @@
file: "{{ role_path }}/requirements.yml"
name: requirements
when:
- check_requirements.stat.exists | bool
- check_requirements.stat.exists
- name: Load molecule/default/converge.yml
ansible.builtin.slurp:
@ -75,7 +75,7 @@
src: "{{ role_path }}/molecule/default/prepare.yml"
register: prepare
when:
- check_prepare.stat.exists | bool
- check_prepare.stat.exists
- name: Check molecule/default/verify.yml
ansible.builtin.stat:
@ -87,14 +87,7 @@
src: "{{ role_path }}/molecule/default/verify.yml"
register: verifyyml
when:
- verify.stat.exists | bool
- name: Load galaxy_id
ansible.builtin.shell:
cmd: "set -o pipefail ; ansible-galaxy info {{ galaxy_namespace }}.{{ role_name }} | grep ' id: ' | awk '{print $NF}'" # noqa no-tabs
register: galaxy_id
changed_when: no
failed_when: no
- verify.stat.exists
- name: Create .github directories
ansible.builtin.file:
@ -105,6 +98,14 @@
- .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:
@ -112,54 +113,155 @@
dest: "{{ role_path }}/{{ item.dest | default(item.source) }}"
mode: "{{ item.mode | default('0644') }}"
with_items:
- source: bug_report.md
dest: .github/ISSUE_TEMPLATE/bug_report.md
- source: feature_request.md
dest: .github/ISSUE_TEMPLATE/feature_request.md
- 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
- name: Render file README.md
ansible.builtin.template:
src: "{{ playbook_dir }}/templates/{{ item.source }}.j2"
dest: "{{ role_path }}/{{ item.dest | default(item.source) }}"
src: "{{ playbook_dir }}/templates/README.md.j2"
dest: "{{ role_path }}/README.md"
mode: "0644"
with_items:
- source: README.md
- source: ansible-lint
dest: .ansible-lint
- source: tox.ini
- source: settings.yml
dest: .github/settings.yml
- source: LICENSE-2.0.txt
dest: LICENSE
- source: SECURITY.md
- source: molecule.yml
dest: molecule/default/molecule.yml
- source: CONTRIBUTING.md
- source: molecule-action.yml
dest: .github/workflows/molecule.yml
- source: galaxy.yml
dest: .github/workflows/galaxy.yml
- source: todo-action.yml
dest: .github/workflows/todo.yml
- source: gitlab-ci.yml
dest: .gitlab-ci.yml
- source: requirements.txt
- source: requirements2png.yml
dest: .github/workflows/requirements2png.yml
- source: FUNDING.yml
dest: .github/FUNDING.yml
loop_control:
label: "{{ item.source }}"
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

View File

@ -2,7 +2,7 @@
You can really make a difference by:
- [Making an issue](https://help.github.com/articles/creating-an-issue/). A well described issue helps a lot. (Have a look at the [known issues](https://github.com/search?q=user%3Arobertdebock+is%3Aissue+state%3Aopen).)
- [Making an issue](https://help.github.com/articles/creating-an-issue/). A well described issue helps a lot. (Have a look at the [known issues](https://github.com/search?q=user%3A{{ github_namespace }}+is%3Aissue+state%3Aopen).)
- [Making a pull request](https://services.github.com/on-demand/github-cli/open-pull-request-github) when you see the error in code.
I'll try to help and take every contribution seriously.
@ -29,7 +29,7 @@ In you own GitHub namespace, make the required changes.
I typically do that by cloning the repository (in your namespace) locally:
```
```shell
git clone git@github.com:YOURNAMESPACE/ansible-role-{{ role_name }}.git
```
@ -39,19 +39,19 @@ Now you can start to edit on your laptop.
Install [molecule](https://molecule.readthedocs.io/en/stable/) and [Tox](https://tox.readthedocs.io/):
```
```shell
pip install molecule tox ansible-lint docker
```
And run `molecule test`. If you want to test a specific distribution, set `image` and optionally `tag`:
```
```shell
image=centos tag=7 molecule test
```
Once it start to work, you can test multiple version of Ansible:
```
```shell
image=centos tag=7 tox
```

View File

@ -1,10 +1,10 @@
# [{{ role_name }}](#{{ role_name }})
# [Ansible role {{ role_name }}](#{{ role_name }})
{{ meta.galaxy_info.description }}
|GitHub|GitLab|Quality|Downloads|Version|
|------|------|-------|---------|-------|
|[![github](https://github.com/{{ github_namespace }}/ansible-role-{{ role_name }}/workflows/Ansible%20Molecule/badge.svg)](https://github.com/{{ github_namespace }}/ansible-role-{{ role_name }}/actions)|[![gitlab](https://gitlab.com/{{ gitlab_namespace }}/ansible-role-{{ role_name }}/badges/master/pipeline.svg)](https://gitlab.com/{{ gitlab_namespace }}/ansible-role-{{ role_name }})|[![quality](https://img.shields.io/ansible/quality/{{ galaxy_id.stdout | default('unset') }})](https://galaxy.ansible.com/{{ github_namespace }}/{{ role_name }})|[![downloads](https://img.shields.io/ansible/role/d/{{ galaxy_id.stdout |default('unset') }})](https://galaxy.ansible.com/{{ github_namespace }}/{{ role_name }})|[![Version](https://img.shields.io/github/release/{{ github_namespace }}/ansible-role-{{ role_name }}.svg)](https://github.com/{{ github_namespace }}/ansible-role-{{ role_name }}/releases/)|
|GitHub|GitLab|Downloads|Version|
|------|------|---------|-------|
|[![github](https://github.com/{{ github_namespace }}/ansible-role-{{ role_name }}/workflows/Ansible%20Molecule/badge.svg)](https://github.com/{{ github_namespace }}/ansible-role-{{ role_name }}/actions)|[![gitlab](https://gitlab.com/{{ gitlab_namespace }}/ansible-role-{{ role_name }}/badges/master/pipeline.svg)](https://gitlab.com/{{ gitlab_namespace }}/ansible-role-{{ role_name }})|[![downloads](https://img.shields.io/ansible/role/d/{{ galaxy_namespace }}/{{ role_name }})](https://galaxy.ansible.com/{{ galaxy_namespace }}/{{ role_name }})|[![Version](https://img.shields.io/github/release/{{ github_namespace }}/ansible-role-{{ role_name }}.svg)](https://github.com/{{ github_namespace }}/ansible-role-{{ role_name }}/releases/)|
## [Example Playbook](#example-playbook)
@ -20,7 +20,9 @@ The machine needs to be prepared. In CI this is done using [`molecule/default/pr
{{ prepare.content | b64decode | regex_replace('ansible-role-', galaxy_namespace ~ '.') }}```
{% endif %}
Also see a [full explanation and example](https://robertdebock.nl/how-to-use-these-roles.html) on how to use these roles.
{% if custom_message is defined %}
{{ custom_message }}
{% endif %}
{% if variables.content is defined %}
## [Role Variables](#role-variables)
@ -80,7 +82,7 @@ The minimum version of Ansible required is {{ meta.galaxy_info.min_ansible_versi
- The current version.
- The development version.
If you find issues, please register them in [GitHub](https://github.com/{{ github_namespace }}/ansible-role-{{ role_name }}/issues)
If you find issues, please register them in [GitHub](https://github.com/{{ github_namespace }}/ansible-role-{{ role_name }}/issues).
## [License](#license)
@ -90,4 +92,6 @@ If you find issues, please register them in [GitHub](https://github.com/{{ githu
[{{ meta.galaxy_info.author }}]({{ author_website }})
{% if sponsored_message %}
Please consider [sponsoring me](https://github.com/sponsors/{{ github_namespace }}).
{% endif %}

View File

@ -9,7 +9,7 @@ These version of [ansible](https://pypi.org/project/ansible/) are supported:
| Version | Supported |
| ------- | ------------------ |
{% if tox_ansible_versions is defined %}
{% for version in tox_ansible_versions %}{{ version }}
{% for version in tox_ansible_versions %}
| {{ version }} | :white_check_mark: |
{% endfor %}
{% else %}

View File

@ -3,16 +3,19 @@
{% if preferencesymlstat.stat.exists or verify.stat.exists %}
exclude_paths:
{% if preferencesymlstat.stat.exists %}
- ./meta/preferences.yml
- meta/preferences.yml
{% endif %}
- ./molecule/default/prepare.yml
- ./molecule/default/converge.yml
- molecule/default/prepare.yml
- molecule/default/converge.yml
{% if verify.stat.exists %}
- ./molecule/default/verify.yml
- molecule/default/verify.yml
{% endif %}
{% endif %}
- ./molecule/default/collections.yml
- ./.tox
- ./.cache
- ./.github
- ./requirements.yml
- molecule/default/collections.yml
- .tox
- .cache
- .github
- requirements.yml
enable_list:
- name[prefix]

View File

@ -4,7 +4,7 @@ about: Create a report to help me improve
---
## Describe the bug
# Describe the bug
A clear and concise description of what the bug is.
@ -13,7 +13,6 @@ A clear and concise description of what the bug is.
Please paste the playbook you are using. (Consider `requirements.yml` and
optionally the command you've invoked.)
```yaml
---
YOUR PLAYBOOK HERE
@ -29,4 +28,6 @@ Show at least the error, possible related output, maybe just all the output.
- Control node Ansible version: [e.g. 2.9.1] (`ansible --version`)
- Managed node OS: [e.g. CentOS 7] (`cat /etc/os-release`)
Please consider [sponsoring me](https://github.com/sponsors/robertdebock).
{% if sponsored_message %}
Please consider [sponsoring me](https://github.com/sponsors/{{ github_namespace }}).
{% endif %}

View File

@ -4,7 +4,7 @@ about: Suggest an idea for this project
---
## Proposed feature
# Proposed feature
A clear and concise description of what you want to happen.
@ -16,4 +16,6 @@ Why is this feature required?
Add any other context about the feature request here.
Please consider [sponsoring me](https://github.com/sponsors/robertdebock).
{% if sponsored_message %}
Please consider [sponsoring me](https://github.com/sponsors/{{ github_namespace }}).
{% endif %}

View File

@ -1,13 +1,16 @@
---
image: "robertdebock/github-action-molecule:5.0.2"
variables:
PY_COLORS: 1
DEBIAN_FRONTEND: noninteractive
molecule:
image: $python
script:
- apt-get update -qq
- apt-get -y -qq install yamllint docker.io
- pip install --no-cache-dir tox
- if [ -f tox.ini ] ; then tox ; fi
- if [ ! -f tox.ini ] ; then molecule test ; fi
- if [ ! -f tox.ini ] ; then pip install -r requirements.yml ; pip install ansible-lint ansible-core ; molecule test ; fi
rules:
- if: $CI_COMMIT_REF_NAME == "master"
parallel:
@ -17,6 +20,7 @@ molecule:
{% for tag in distribution_version_mapping[platform.name][version] %}
- image: "{{ platform_image_mapping[platform.name] }}"
tag: "{{ tag }}"
python: {{ matrix_overrides[platform_image_mapping[platform.name] | lower ]["python"] | default(default_python_version) }}
{% endfor %}
{% endfor %}
{% endfor %}

View File

@ -5,8 +5,8 @@ name: Ansible Molecule
on:
push:
tags_ignore:
- '*'
branches:
- master
pull_request:
schedule:
- cron: '{{ letter_minute_mapping[role_name[0]] }} {{ letter_hour_mapping[role_name[0]] }} {{ letter_day_mapping[role_name[0]] }} * *'
@ -16,45 +16,61 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: ansible-lint
uses: ansible-community/ansible-lint-action@main
test:
{% for python_version in default_python_version %}
{{ python_version | replace('.', '-') | replace(':', '-') }}:
needs:
- lint
runs-on: ubuntu-20.04
container:
image: {{ python_version }}
strategy:
fail-fast: false
matrix:
config:
{% for platform in meta.galaxy_info.platforms %}
{% for version in platform.versions %}
{% if matrix_overrides is defined %}
{% if matrix_overrides[platform_image_mapping[platform.name]] is defined %}
{% for override_python_version in matrix_overrides[platform_image_mapping[platform.name]]["python"] %}
{% if override_python_version == python_version %}
{% for tag in distribution_version_mapping[platform.name][version] %}
- image: "{{ platform_image_mapping[platform.name] }}"
tag: "{{ tag }}"
{% endfor %}
{% endif %}
{% endfor %}
{% else %}
{% for tag in distribution_version_mapping[platform.name][version] %}
- image: "{{ platform_image_mapping[platform.name] }}"
tag: "{{ tag }}"
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
{% endfor %}
steps:
- name: checkout
uses: actions/checkout@v3
with:
path: {% raw %}"${{ github.repository }}"{% endraw %}
uses: actions/checkout@v4
- name: disable apparmor for mysql
run: sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
- name: parse apparmor for mysql
run: sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
- name: molecule
uses: robertdebock/molecule-action@5.0.2
with:
run: |
apt-get update -qq
apt-get -y -qq install yamllint docker.io
pip install --no-cache-dir tox
if [ -f tox.ini ] ; then tox ; fi
if [ ! -f tox.ini ] ; then pip install -r requirements.yml ; pip install ansible-lint ansible-core ; molecule test ; fi
env:
image: {% raw %}${{ matrix.config.image }}{% endraw %}
tag: {% raw %}${{ matrix.config.tag }}{% endraw %}
{% if github_variables_mapping is defined %}
env:
{% for item in github_variables_mapping %}
{{ item.variable }}: {% raw %}${{ {%endraw %}{{ item.name }} {% raw %}}}{% endraw %}
{% endfor %}
{% endif %}
{% endfor %}

View File

@ -16,9 +16,9 @@ platforms:
image: "${namespace:-{{ docker_namespace }}}/${image:-{{ docker_image }}}:${tag:-{{ docker_tag }}}"
command: /sbin/init
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
privileged: yes
pre_build_image: yes
- /sys/fs/cgroup:/sys/fs/cgroup:rw
privileged: true
pre_build_image: true
provisioner:
name: ansible
{% if github_variables_mapping is defined %}

View File

@ -1,10 +0,0 @@
# These role have been tested with these PIP component.
# To install the required version yourself, use a command as:
# `python -m pip --user install -r requirements.txt`
# See the pip requirements file documentation for details:
# https://pip.pypa.io/en/stable/user_guide/#requirements-files
#
# Tests run on the previous and current (latest) version of Ansible.
ansible>={{ meta.galaxy_info.min_ansible_version }}
# Some Jinja2 filters are used that are available in the newer releases.
jinja2>=2.11.2

View File

@ -9,9 +9,11 @@ name: Ansible Graphviz
jobs:
build:
runs-on: ubuntu-20.04
permissions:
contents: write
steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: {% raw %}${{ github.repository }}{% endraw %}
@ -28,8 +30,6 @@ jobs:
- name: save to png branch
uses: ad-m/github-push-action@master
with:
github_token: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %}
directory: {% raw %}${{ github.repository }}{% endraw %}
force: true

View File

@ -10,9 +10,9 @@ jobs:
build:
runs-on: "ubuntu-20.04"
steps:
- uses: "actions/checkout@master"
- uses: actions/checkout@v4
- name: "TODO to Issue"
uses: "alstr/todo-to-issue-action@v2.3"
uses: "alstr/todo-to-issue-action@v4"
id: "todo"
with:
TOKEN: ${% raw %}{{ secrets.GITHUB_TOKEN }}{% endraw %}

View File

@ -1,36 +1,48 @@
{{ ansible_managed | comment }}
[tox]
minversion = 4.2.4
{% if tox_ansible_versions is defined %}
envlist = py{310}-ansible{% raw %}{{% endraw %}{% for version in tox_ansible_versions %}{{ version }}{% if not loop.last %},{% endif %}{% endfor %}{% raw %}}{% endraw %}
{% else %}
envlist = py{310}-ansible{5,6,7}
{% endif %}
envlist = ansible-2.{15,16,17}
skipsdist = true
[testenv]
deps =
ansible5: ansible == 5.*
ansible6: ansible == 6.*
ansible7: ansible == 7.*
molecule[docker]
docker == 6.*
ansible-lint == 6.*
commands = molecule test
setenv =
TOX_ENVNAME={envname}
PY_COLORS=1
ANSIBLE_FORCE_COLOR=1
ANSIBLE_ROLES_PATH=../
passenv =
namespace
image
tag
DOCKER_HOST
{% if github_variables_mapping is defined %}
{% for item in github_variables_mapping %}
{{ item.variable }}
{% endfor %}
{% endif %}
passenv = *
# Test supported releases of ansible-core. See:
# https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#ansible-core-support-matrix
[testenv:ansible-2.15]
basepython = python3.9
deps =
-rrequirements.txt
ansible-core==2.15.*
ansible-lint==6.*
[testenv:ansible-2.16]
basepython = python3.10
deps =
-rrequirements.txt
ansible-core==2.16.*
ansible-lint==24.*
[testenv:ansible-2.17]
basepython = python3.10
deps =
-rrequirements.txt
ansible-core==2.17.*
ansible-lint==24.*
# Future work, not releases, just prepared. See:
# https://docs.ansible.com/ansible/devel//roadmap/ROADMAP_2_18.html
# Note: enable python3.13 in `vars/main.yml` as well.
# [testenv:ansible-2.18]
# basepython = python3.13
# deps =
# -rrequirements.txt
# ansible-core==2.18.*
# ansible-lint==24.*

View File

@ -7,3 +7,4 @@ A few roles to let CI try rendering files in different situations.
- `ansible-role-default` - A default role, as generated by the [skeleton](https://github.com/robertdebock/ansible-role-skeleton) template.
- `ansible-role-preferences` - Use `preferences.yml` to change behaviour.
- `ansible-role-minimal` - A role that has the minimum amount of files.
- `ansible-role-version` - A role that sets tox versions in `tox.ini`.

View File

@ -0,0 +1,26 @@
---
# Don't generate GitHub CI configuration file
generate_github_settings: no
generate_github_action_molecule: no
generate_github_action_galaxy: no
generate_github_action_todo: no
generate_github_funding: no
generate_github_issue_template: no
generate_github_feature_template: no
# The rest of the files generated are enabled by default.
# generate_gitignore: yes
# generate_yamllint: yes
# generate_pre_commit: yes
# generate_readme: yes
# generate_ansible_lint: yes
# generate_tox: yes
# generate_license: yes
# generate_security: yes
# generate_molecule: yes
# generate_contributing: yes
# generate_gitlab_ci: yes
# generate_requirements_txt: yes
# generate_requirements2png: yes
# generate_install_pre_commit: yes

View File

@ -0,0 +1,26 @@
---
# Don't generate GitLab CI configuration file
generate_gitlab_ci: no
# The rest of the files generated are enabled by default.
# generate_gitignore: yes
# generate_yamllint: yes
# generate_pre_commit: yes
# generate_readme: yes
# generate_ansible_lint: yes
# generate_tox: yes
# generate_github_settings: yes
# generate_license: yes
# generate_security: yes
# generate_molecule: yes
# generate_contributing: yes
# generate_github_action_molecule: yes
# generate_github_action_galaxy: yes
# generate_github_action_todo: yes
# generate_requirements_txt: yes
# generate_requirements2png: yes
# generate_github_funding: yes
# generate_github_issue_template: yes
# generate_github_feature_template: yes
# generate_install_pre_commit: yes

View File

@ -0,0 +1,26 @@
---
# Do not generate pre-commit configuration file.
generate_install_pre_commit: no
# The rest of the files generated are enabled by default.
# generate_gitignore: yes
# generate_yamllint: yes
# generate_pre_commit: yes
# generate_readme: yes
# generate_ansible_lint: yes
# generate_tox: yes
# generate_github_settings: yes
# generate_license: yes
# generate_security: yes
# generate_molecule: yes
# generate_contributing: yes
# generate_github_action_molecule: yes
# generate_github_action_galaxy: yes
# generate_github_action_todo: yes
# generate_gitlab_ci: yes
# generate_requirements_txt: yes
# generate_requirements2png: yes
# generate_github_funding: yes
# generate_github_issue_template: yes
# generate_github_feature_template: yes

View File

@ -0,0 +1,26 @@
---
# Do not generate tox.ini file.
generate_tox: no
# The rest of the files generated are enabled by default.
# generate_gitignore: yes
# generate_yamllint: yes
# generate_pre_commit: yes
# generate_readme: yes
# generate_ansible_lint: yes
# generate_github_settings: yes
# generate_license: yes
# generate_security: yes
# generate_molecule: yes
# generate_contributing: yes
# generate_github_action_molecule: yes
# generate_github_action_galaxy: yes
# generate_github_action_todo: yes
# generate_gitlab_ci: yes
# generate_requirements_txt: yes
# generate_requirements2png: yes
# generate_github_funding: yes
# generate_github_issue_template: yes
# generate_github_feature_template: yes
# generate_install_pre_commit: yes

View File

@ -0,0 +1,26 @@
---
# This only generates the README.md file.
generate_readme: yes
# The rest of the files generated are disabled.
generate_gitignore: no
generate_yamllint: no
generate_pre_commit: no
generate_ansible_lint: no
generate_tox: no
generate_github_settings: no
generate_license: no
generate_security: no
generate_molecule: no
generate_contributing: no
generate_github_action_molecule: no
generate_github_action_galaxy: no
generate_github_action_todo: no
generate_gitlab_ci: no
generate_requirements_txt: no
generate_requirements2png: no
generate_github_funding: no
generate_github_issue_template: no
generate_github_feature_template: no
generate_install_pre_commit: no

View File

@ -1,6 +1,12 @@
---
# Setting to generate files.
# A list of python version to test.
default_python_version:
- "python:3.9"
- "python:3.10"
# - "python:3:13"
# A map that relates the `meta/main.yml` - `galaxy_info.platforms.name` to a name of a container.
platform_image_mapping:
Alpine: alpine
@ -14,14 +20,14 @@ platform_image_mapping:
# A map that relates a container name to the URL of that container on Docker Hub.
image_docker_hub_url_mapping:
alpine: "https://hub.docker.com/repository/docker/{{ docker_namespace }}/alpine/general"
amazon: "https://hub.docker.com/repository/docker/{{ docker_namespace }}/amazonlinux/general"
archlinux: "https://hub.docker.com/repository/docker/{{ docker_namespace }}/archlinux/general"
debian: "https://hub.docker.com/repository/docker/{{ docker_namespace }}/debian/general"
el: "https://hub.docker.com/repository/docker/{{ docker_namespace }}/enterpriselinux/general"
fedora: "https://hub.docker.com/repository/docker/{{ docker_namespace }}/fedora/general"
opensuse: "https://hub.docker.com/repository/docker/{{ docker_namespace }}/opensuse/general"
ubuntu: "https://hub.docker.com/repository/docker/{{ docker_namespace }}/ubuntu/general"
alpine: "https://hub.docker.com/r/{{ docker_namespace }}/alpine"
amazon: "https://hub.docker.com/r/{{ docker_namespace }}/amazonlinux"
archlinux: "https://hub.docker.com/r/{{ docker_namespace }}/archlinux"
debian: "https://hub.docker.com/r/{{ docker_namespace }}/debian"
el: "https://hub.docker.com/r/{{ docker_namespace }}/enterpriselinux"
fedora: "https://hub.docker.com/r/{{ docker_namespace }}/fedora"
opensuse: "https://hub.docker.com/r/{{ docker_namespace }}/opensuse"
ubuntu: "https://hub.docker.com/r/{{ docker_namespace }}/ubuntu"
# This maps the Galaxy distribution and version to Docker images.
# A map that relates the `meta/main.yml` - `galaxy_info.platforms.versions` to the tag of the Docker container.
@ -31,10 +37,7 @@ distribution_version_mapping:
- latest
Amazon:
all:
- 1
- latest
"2018.03":
- 1
Candidate:
- latest
Archlinux:
@ -42,48 +45,43 @@ distribution_version_mapping:
- latest
Debian:
all:
- latest
- bookworm
- latest # 12
- bullseye # 11
bullseye:
- latest
- bullseye
bookworm:
- bookworm
- latest
buster:
- buster
EL:
all:
- 7
- 8
- latest
"7":
- 7
"8":
- 8
"9":
- latest
Fedora:
all:
- 36
- 39
- latest
- rawhide
"36":
- 36
"37":
- latest
"38":
- rawhide
opensuse:
all:
- 38
"39":
- 39
"40":
- latest
"41":
- rawhide
Ubuntu:
all:
- latest # 24
- jammy # 22
- focal # 20
noble:
- latest
- focal
- bionic
jammy:
- latest
- jammy
focal:
- focal
bionic:
- bionic
# To schedule CI on different days of the month, this is a map that relates a letter to a day of the month.
letter_day_mapping:
@ -113,16 +111,16 @@ letter_day_mapping:
x: 24
y: 25
z: 26
0: 27
1: 27
2: 27
3: 27
4: 27
5: 27
6: 27
7: 27
8: 27
9: 27
"0": 27
"1": 27
"2": 27
"3": 27
"4": 27
"5": 27
"6": 27
"7": 27
"8": 27
"9": 27
# To schedule CI on different hours of the day, this is a map that relates a letter to an hour of the day.
letter_hour_mapping:
@ -152,16 +150,16 @@ letter_hour_mapping:
x: 22
y: 22
z: 22
0: 23
1: 23
2: 23
3: 23
4: 23
5: 23
6: 23
7: 23
8: 23
9: 23
"0": 23
"1": 23
"2": 23
"3": 23
"4": 23
"5": 23
"6": 23
"7": 23
"8": 23
"9": 23
# To schedule CI on different days of the month, this is a map that relates a letter to a minute of the hour.
letter_minute_mapping:
@ -191,13 +189,13 @@ letter_minute_mapping:
x: 47
y: 49
z: 51
0: 53
1: 55
2: 57
3: 59
4: 59
5: 59
6: 59
7: 59
8: 59
9: 59
"0": 53
"1": 55
"2": 57
"3": 59
"4": 59
"5": 59
"6": 59
"7": 59
"8": 59
"9": 59