Update tox config and add bashate E006, E040 exceptions
This patch updates the tox.ini the same bashate exceptions as are currently in the OpenStack-Ansible playbook repo. It also ensures that the linters and all lint targets work appropriately and normalises the tox.ini configuration to use uniform formatting. Change-Id: I2e76678eb79ec4a52a7cce74997f59e005aee283
This commit is contained in:
parent
1e999b9256
commit
5c4df7b608
@ -1,5 +1,5 @@
|
||||
ansible-lint
|
||||
ansible>=1.9.1,<2.0.0
|
||||
bashate
|
||||
flake8
|
||||
|
||||
# this is required for the docs build jobs
|
||||
sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
|
||||
|
69
tox.ini
69
tox.ini
@ -3,66 +3,69 @@ minversion = 1.6
|
||||
skipsdist = True
|
||||
envlist = docs,linters
|
||||
|
||||
|
||||
[testenv]
|
||||
usedevelop = True
|
||||
install_command = pip install -U {opts} {packages}
|
||||
setenv = VIRTUAL_ENV={envdir}
|
||||
deps = -r{toxinidir}/test-requirements.txt
|
||||
commands = /usr/bin/find . -type f -name "*.pyc" -delete
|
||||
passenv =
|
||||
HOME
|
||||
whitelist_externals =
|
||||
bash
|
||||
setenv =
|
||||
VIRTUAL_ENV={envdir}
|
||||
|
||||
|
||||
[testenv:docs]
|
||||
commands=
|
||||
python setup.py build_sphinx
|
||||
|
||||
|
||||
# environment used by the -infra templated docs job
|
||||
[testenv:venv]
|
||||
deps = -r{toxinidir}/test-requirements.txt
|
||||
commands = {posargs}
|
||||
|
||||
|
||||
[testenv:pep8]
|
||||
deps =
|
||||
flake8
|
||||
whitelist_externals = bash
|
||||
commands =
|
||||
# Run hacking/flake8 check for all python files
|
||||
bash -c "grep -Irl \
|
||||
-e '!/usr/bin/env python' \
|
||||
-e '!/bin/python' \
|
||||
-e '!/usr/bin/python' \
|
||||
--exclude-dir '.*' \
|
||||
--exclude-dir 'doc' \
|
||||
--exclude-dir '*.egg' \
|
||||
--exclude-dir '*.egg-info' \
|
||||
--exclude-dir '*templates' \
|
||||
--exclude 'tox.ini' \
|
||||
--exclude '*.sh' \
|
||||
bash -c "grep --recursive --binary-files=without-match \
|
||||
--files-with-match '^.!.*python$' \
|
||||
--exclude-dir .eggs \
|
||||
--exclude-dir .git \
|
||||
--exclude-dir .tox \
|
||||
--exclude-dir *.egg-info \
|
||||
--exclude-dir doc \
|
||||
{toxinidir} | xargs flake8 --verbose"
|
||||
|
||||
[flake8]
|
||||
# Ignores the following rules due to how ansible modules work in general
|
||||
# F403 'from ansible.module_utils.basic import *' used;
|
||||
# unable to detect undefined names
|
||||
# H303 No wildcard (*) import.
|
||||
# H303 No wildcard (*) import.
|
||||
ignore=F403,H303
|
||||
|
||||
|
||||
[testenv:bashate]
|
||||
deps =
|
||||
bashate
|
||||
whitelist_externals = bash
|
||||
commands =
|
||||
# Run bashate check for all bash scripts
|
||||
# Ignores the following rules:
|
||||
# E003: Indent not multiple of 4 (we prefer to use multiples of 2)
|
||||
bash -c "grep --recursive --binary-files=without-match \
|
||||
--files-with-match '^.!.*\(ba\)\?sh$' \
|
||||
--exclude-dir .tox \
|
||||
--exclude-dir .git \
|
||||
{toxinidir} | xargs bashate --error . --verbose --ignore=E003"
|
||||
# Run bashate check for all bash scripts
|
||||
# Ignores the following rules:
|
||||
# E003: Indent not multiple of 4 (we prefer to use multiples of 2)
|
||||
# E006: Line longer than 79 columns (as many scripts use jinja
|
||||
# templating, this is very difficult)
|
||||
# E040: Syntax error determined using `bash -n` (as many scripts
|
||||
# use jinja templating, this will often fail and the syntax
|
||||
# error will be discovered in execution anyway)
|
||||
bash -c "grep --recursive --binary-files=without-match \
|
||||
--files-with-match '^.!.*\(ba\)\?sh$' \
|
||||
--exclude-dir .tox \
|
||||
--exclude-dir .git \
|
||||
{toxinidir} | xargs bashate --error . --verbose --ignore=E003,E006,E040"
|
||||
|
||||
|
||||
[testenv:linters]
|
||||
deps =
|
||||
{[testenv:pep8]deps}
|
||||
{[testenv:bashate]deps}
|
||||
whitelist_externals = bash
|
||||
commands =
|
||||
{[testenv:pep8]commands}
|
||||
{[testenv:bashate]commands}
|
||||
{[testenv:pep8]commands}
|
||||
{[testenv:bashate]commands}
|
||||
|
Loading…
x
Reference in New Issue
Block a user