diff --git a/.yamllint.yaml b/.yamllint.yaml new file mode 100644 index 0000000000..7f42deddbd --- /dev/null +++ b/.yamllint.yaml @@ -0,0 +1,14 @@ +--- +extends: default + +rules: + indentation: + spaces: 2 + indent-sequences: whatever + level: warning + line-length: + max: 100 + level: warning + truthy: + allowed-values: ['true', 'false', 'yes', 'no'] +... diff --git a/.zuul.yaml b/.zuul.yaml index b10781b9c3..b8c038ab34 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -19,8 +19,16 @@ parent: fi-ansible--ansible-review-base run: ci/ansible-review-diff.yaml +- job: + name: fi-ansible--yamllint-diff + run: ci/yamllint-diff.yaml + files: + - \.yml$ + - \.yaml$ + - project: check: jobs: - fi-ansible--zuul-jobs-verify-namespace - fi-ansible--ansible-review-diff + - fi-ansible--yamllint-diff diff --git a/ci/yamllint-diff.yaml b/ci/yamllint-diff.yaml new file mode 100644 index 0000000000..b2a11b67a6 --- /dev/null +++ b/ci/yamllint-diff.yaml @@ -0,0 +1,24 @@ +--- +- hosts: all + tasks: + - name: Install yamllint + package: + name: yamllint + state: latest + + - name: Determine added or modified YAML files + command: + cmd: > + git diff --name-only --diff-filter=AM + origin/{{ zuul.branch|quote }}...{{ zuul.branch|quote }} + args: + chdir: '{{ zuul.project.src_dir }}' + register: fi_ansible__added_modified_yaml_files + changed_when: "False" + failed_when: fi_ansible__added_modified_yaml_files.rc != 0 + + - name: Run yamllint on changed YAML files + command: yamllint {{ item }} + args: + chdir: '{{ zuul.project.src_dir }}' + with_items: "{{ fi_ansible__added_modified_yaml_files.stdout_lines | list }}"