Initialize sf-jobs repository
diff --git a/roles/ansible-lint/README.rst b/roles/ansible-lint/README.rst
new file mode 100644
index 0000000..081b47c
--- /dev/null
+++ b/roles/ansible-lint/README.rst
@@ -0,0 +1,7 @@
+Runs ansible-lint
+
+**Role Variables**
+
+.. zuul:rolevar:: ansible_lint_roles_dir
+
+ Set this variable to the Ansible roles directory.
diff --git a/roles/ansible-lint/defaults/main.yaml b/roles/ansible-lint/defaults/main.yaml
new file mode 100644
index 0000000..e652cf0
--- /dev/null
+++ b/roles/ansible-lint/defaults/main.yaml
@@ -0,0 +1,2 @@
+---
+ansible_lint_roles_dir: null
diff --git a/roles/ansible-lint/tasks/main.yaml b/roles/ansible-lint/tasks/main.yaml
new file mode 100644
index 0000000..c705e13
--- /dev/null
+++ b/roles/ansible-lint/tasks/main.yaml
@@ -0,0 +1,26 @@
+---
+- name: Run ansible-lint on yaml files
+ shell: >
+ find * -name "*.yml" -or -name "*.yaml" |
+ xargs --no-run-if-empty ansible-lint -p --nocolor
+ register: __files
+ ignore_errors: yes
+ environment:
+ PATH: "{{ ansible_env.PATH }}:{{ ansible_env.HOME }}/.local/bin"
+ args:
+ chdir: "{{ zuul.project.src_dir }}"
+
+- name: Run ansible-lint on roles dir
+ shell: "ansible-lint -p --nocolor {{ ansible_lint_roles_dir }}/*"
+ register: __roles
+ ignore_errors: yes
+ environment:
+ PATH: "{{ ansible_env.PATH }}:{{ ansible_env.HOME }}/.local/bin"
+ args:
+ chdir: "{{ zuul.project.src_dir }}"
+ when: ansible_lint_roles_dir
+
+- name: Fail if linter failed
+ fail:
+ msg: "One or more file(s) failed lint checks"
+ when: (ansible_lint_roles_dir and __roles.rc) or __files.rc