- name: Test Ansible Lint Formatting via VirtualEnv hosts: all become: true gather_facts: true vars: ansible_lint_vers : "6.13.1" ansible_lint_venv : /tmp/ansible-lint-venv git_repo_to_lint : https://gitea.thezengarden.net/chris/ansible-lint-poc.git lint_work_dir : /tmp/lint_repository tasks: - name: Enable CRB repository for python3-wheel (required by virtualenv) ansible.builtin.command: cmd: dnf config-manager --enable crb changed_when: true - name: Ensure virtualenv command is present ansible.builtin.package: name: - python3-setuptools - virtualenv state: present - name: Disable CRB repository as it is no longer needed ansible.builtin.command: cmd: dnf config-manager --disable crb changed_when: true - name: Create VirtualEnv and Install ansible-lint ansible.builtin.pip: name: "ansible-lint=={{ ansible_lint_vers }}" virtualenv: "{{ ansible_lint_venv }}" virtualenv_python: python3.9 - name: Ansible Lint Debug Information block: - name: Test Ansible Lint - Version ansible.builtin.command: "{{ ansible_lint_venv }}/bin/ansible-lint --nocolor --version" register: r_lint_version changed_when: false - name: Test Ansible Lint - Help ansible.builtin.command: "{{ ansible_lint_venv }}/bin/ansible-lint --nocolor --help" register: r_lint_help changed_when: false - name: Show ansible-lint infos ansible.builtin.debug: msg: - "'ansible-lint --version': {{ r_lint_version['stdout'] }}" - "'ansible-lint --help': {{ r_lint_help['stdout'] }}" verbosity: 1 - name: Create destination for cloned repositories ansible.builtin.file: path: "{{ lint_work_dir }}" state: directory mode: "0755" - name: Clone target repository into ansible.builtin.git: repo: "{{ git_repo_to_lint }}" dest: "{{ lint_work_dir }}" version: main - name: Test Ansible Lint - Playbooks/Roles ansible.builtin.command: cmd: "{{ ansible_lint_venv }}/bin/ansible-lint --nocolor --format json" chdir: "{{ lint_work_dir }}" ignore_errors: true changed_when: false register: r_lint_output - name: Debug r_lint_output ansible.builtin.debug: verbosity: 1 var: r_lint_output['stdout'] - name: Cleanup repository destination ansible.builtin.file: path: "{{ lint_work_dir }}" state: absent - name: Cleanup Virtual Environment ansible.builtin.file: path: "{{ ansible_lint_venv }}" state: absent - name: Cleanup installed packages ansible.builtin.package: name: - python3-setuptools - virtualenv state: absent