Add Ansible-lint CI step (#4411)

* Add ansible-lint as gitlab-ci step

* Fix jinja2 syntax in include_tasks that breaks ansible-lint

* Use a block scalar to get around gitlab quoting/escaping rules

* Run ansible-lint in verbose mode in CI
pull/4484/head
MarkusTeufelberger 2019-04-10 11:04:16 +02:00 committed by Kubernetes Prow Robot
parent a678d1be9d
commit d2a1ac3b0c
4 changed files with 36 additions and 1 deletions

25
.ansible-lint 100644
View File

@ -0,0 +1,25 @@
---
parseable: true
skip_list:
# see https://docs.ansible.com/ansible-lint/rules/default_rules.html for a list of all default rules
# The following rules throw errors.
# These either still need to be corrected in the repository and the rules re-enabled or they are skipped on purpose.
- '102'
- '103'
- '104'
- '201'
- '204'
- '206'
- '301'
- '302'
- '303'
- '305'
- '306'
- '403'
- '404'
- '502'
- '503'
- '504'
- '601'
- '602'
- '701'

View File

@ -731,6 +731,14 @@ yamllint:
- yamllint .
except: ['triggers', 'master']
ansible-lint:
<<: *job
stage: unit-tests
# lint every yml/yaml file that looks like it contains Ansible plays
script: |-
grep -Rl '^- hosts: \|^ hosts: \|^- name: ' --include \*.yml --include \*.yaml . | xargs ansible-lint -v
except: ['triggers', 'master']
tox-inventory-builder:
stage: unit-tests
<<: *job

View File

@ -4,9 +4,10 @@
- not skip_downloads|default(false)
- name: "Download items"
include_tasks: "download_{% if download.container %}container{% else %}file{% endif %}.yml"
include_tasks: "{{ include_file }}"
vars:
download: "{{ download_defaults | combine(item.value) }}"
include_file: "download_{% if download.container %}container{% else %}file{% endif %}.yml"
with_dict: "{{ downloads }}"
when:
- not skip_downloads|default(false)

View File

@ -5,3 +5,4 @@ boto==2.9.0
tox
dopy
PyCrypto
ansible-lint==4.1.0