Initialize sf-jobs repository
diff --git a/roles/linters/tasks/lint_ansible-lint.yaml b/roles/linters/tasks/lint_ansible-lint.yaml
new file mode 100644
index 0000000..005b02f
--- /dev/null
+++ b/roles/linters/tasks/lint_ansible-lint.yaml
@@ -0,0 +1,17 @@
+---
+- name: Run ansible-lint
+ shell: "ansible-lint -p --nocolor {{ ansible_lint_roles_dir }}/*"
+ register: _ansible_lint
+ ignore_errors: yes
+ args:
+ chdir: "{{ zuul.project.src_dir }}"
+ environment:
+ PATH: "{{ ansible_env.PATH }}:{{ ansible_env.HOME }}/.local/bin"
+ when: ansible_lint_roles_dir
+
+- name: Set linter failure to true
+ set_fact:
+ linter_failure: true
+ when:
+ - ansible_lint_roles_dir
+ - _ansible_lint.rc
diff --git a/roles/linters/tasks/lint_bashate.yaml b/roles/linters/tasks/lint_bashate.yaml
new file mode 100644
index 0000000..ad63a40
--- /dev/null
+++ b/roles/linters/tasks/lint_bashate.yaml
@@ -0,0 +1,14 @@
+---
+- name: "Run bashate"
+ shell: find * -name "*.sh" | xargs --no-run-if-empty bashate
+ register: _bashate
+ ignore_errors: yes
+ environment:
+ PATH: "{{ ansible_env.PATH }}:{{ ansible_env.HOME }}/.local/bin"
+ args:
+ chdir: "{{ zuul.project.src_dir }}"
+
+- name: Set linter failure to true
+ set_fact:
+ linter_failure: true
+ when: _bashate.rc
diff --git a/roles/linters/tasks/lint_doc8.yaml b/roles/linters/tasks/lint_doc8.yaml
new file mode 100644
index 0000000..a3edc17
--- /dev/null
+++ b/roles/linters/tasks/lint_doc8.yaml
@@ -0,0 +1,15 @@
+---
+- name: Run doc8
+ shell: >
+ find * -name "*.rst" | xargs --no-run-if-empty doc8
+ register: _doc8
+ ignore_errors: yes
+ environment:
+ PATH: "{{ ansible_env.PATH }}:{{ ansible_env.HOME }}/.local/bin"
+ args:
+ chdir: "{{ zuul.project.src_dir }}"
+
+- name: Set linter failure to true
+ set_fact:
+ linter_failure: true
+ when: _doc8.rc
diff --git a/roles/linters/tasks/lint_flake8.yaml b/roles/linters/tasks/lint_flake8.yaml
new file mode 100644
index 0000000..e5a8ab1
--- /dev/null
+++ b/roles/linters/tasks/lint_flake8.yaml
@@ -0,0 +1,14 @@
+---
+- name: "Run flake8"
+ shell: find * -name "*.py" | xargs --no-run-if-empty flake8
+ register: _flake8
+ ignore_errors: yes
+ environment:
+ PATH: "{{ ansible_env.PATH }}:{{ ansible_env.HOME }}/.local/bin"
+ args:
+ chdir: "{{ zuul.project.src_dir }}"
+
+- name: Set linter failure to true
+ set_fact:
+ linter_failure: true
+ when: _flake8.rc
diff --git a/roles/linters/tasks/lint_golint.yaml b/roles/linters/tasks/lint_golint.yaml
new file mode 100644
index 0000000..e0c9495
--- /dev/null
+++ b/roles/linters/tasks/lint_golint.yaml
@@ -0,0 +1,15 @@
+---
+- name: Run golint
+ shell: >
+ find * -name "*.go" | xargs --no-run-if-empty golint -set_exit_status
+ register: _golint
+ ignore_errors: yes
+ environment:
+ PATH: "{{ ansible_env.PATH }}:{{ ansible_env.HOME }}/.local/bin"
+ args:
+ chdir: "{{ zuul.project.src_dir }}"
+
+- name: Set linter failure to true
+ set_fact:
+ linter_failure: true
+ when: _golint.rc
diff --git a/roles/linters/tasks/lint_yamllint.yaml b/roles/linters/tasks/lint_yamllint.yaml
new file mode 100644
index 0000000..0f7ae40
--- /dev/null
+++ b/roles/linters/tasks/lint_yamllint.yaml
@@ -0,0 +1,16 @@
+---
+- name: Run yamllint
+ shell: >
+ find * -name "*.yml" -or -name "*.yaml" |
+ xargs --no-run-if-empty yamllint -d relaxed
+ register: _yamllint
+ ignore_errors: yes
+ environment:
+ PATH: "{{ ansible_env.PATH }}:{{ ansible_env.HOME }}/.local/bin"
+ args:
+ chdir: "{{ zuul.project.src_dir }}"
+
+- name: Set linter failure to true
+ set_fact:
+ linter_failure: true
+ when: _yamllint.rc
diff --git a/roles/linters/tasks/main.yaml b/roles/linters/tasks/main.yaml
new file mode 100644
index 0000000..8791365
--- /dev/null
+++ b/roles/linters/tasks/main.yaml
@@ -0,0 +1,12 @@
+---
+- name: Set linter failure to false
+ set_fact:
+ linter_failure: false
+
+- include: "lint_{{ item }}.yaml"
+ loop: "{{ linters }}"
+
+- name: Fail if one linter failed
+ fail:
+ msg: "One or more file(s) failed lint checks"
+ when: linter_failure