diff options
| author | Ahmed Abdelhalim <[email protected]> | 2026-01-18 21:28:30 +0100 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2026-01-18 21:28:30 +0100 |
| commit | 37cde904c097879331fd978032bf3898f16413ee (patch) | |
| tree | 53f0e8c1035ded24d78146f153ad0f752a9c3bdc | |
| parent | a8b43b18cb769355fde300d94ff64e9472dafe9f (diff) | |
Add yamllint role and use it as dependency for ansible
Since my ansible setup depends on yamllint for linting, it's ok to have
this as an implicit dependency for this role, but it can also be used
separately
| -rw-r--r-- | roles/ansible/meta/main.yml | 1 | ||||
| -rw-r--r-- | roles/yamllint/defaults/main.yml | 2 | ||||
| -rw-r--r-- | roles/yamllint/meta/argument_specs.yml | 10 | ||||
| -rw-r--r-- | roles/yamllint/meta/main.yml | 18 | ||||
| -rw-r--r-- | roles/yamllint/tasks/main.yml | 19 |
5 files changed, 50 insertions, 0 deletions
diff --git a/roles/ansible/meta/main.yml b/roles/ansible/meta/main.yml index de825587..3611082e 100644 --- a/roles/ansible/meta/main.yml +++ b/roles/ansible/meta/main.yml @@ -2,6 +2,7 @@ dependencies: - role: "python" - role: "sshpass" + - role: "yamllint" galaxy_info: author: "a14m" description: "Install ansible and molecule using uv on Linux distributions" diff --git a/roles/yamllint/defaults/main.yml b/roles/yamllint/defaults/main.yml new file mode 100644 index 00000000..43e19920 --- /dev/null +++ b/roles/yamllint/defaults/main.yml @@ -0,0 +1,2 @@ +--- +yamllint_version: "1.37.1" diff --git a/roles/yamllint/meta/argument_specs.yml b/roles/yamllint/meta/argument_specs.yml new file mode 100644 index 00000000..c79203f8 --- /dev/null +++ b/roles/yamllint/meta/argument_specs.yml @@ -0,0 +1,10 @@ +--- +argument_specs: + main: + short_description: "Install yamllint on Linux distributions" + description: "Install yamllint on Linux distributions" + options: + yamllint_version: + type: "str" + description: "The default yamllint version to use (must be in major.minor.patch format)" + default: "1.37.1" diff --git a/roles/yamllint/meta/main.yml b/roles/yamllint/meta/main.yml new file mode 100644 index 00000000..2be2e40e --- /dev/null +++ b/roles/yamllint/meta/main.yml @@ -0,0 +1,18 @@ +--- +dependencies: + - role: "python" +galaxy_info: + author: "a14m" + description: "Install yamllint using uv on Linux distributions" + license: "MIT" + min_ansible_version: "2.18" + platforms: + - name: "ArchLinux" + versions: + - "all" + - name: "Ubuntu" + versions: + - "noble" + - name: "Debian" + versions: + - "bookworm" diff --git a/roles/yamllint/tasks/main.yml b/roles/yamllint/tasks/main.yml new file mode 100644 index 00000000..902f0e02 --- /dev/null +++ b/roles/yamllint/tasks/main.yml @@ -0,0 +1,19 @@ +--- +- name: "Check yamllint version {{ yamllint_version }}" + ansible.builtin.shell: | + set -euo pipefail + uv tool list | grep "^yamllint " | awk '{print $2}' | sed 's/^v//' + args: + executable: /bin/bash + register: ansible_lint_installed_version + changed_when: false + failed_when: false + +- name: "Install yamllint version {{ yamllint_version }}" + ansible.builtin.shell: | + set -euo pipefail + uv tool install yamllint=={{ yamllint_version }} --force + args: + executable: /bin/bash + changed_when: true + when: ansible_lint_installed_version.stdout != yamllint_version |
