3febd1423a
Makes use of newer feature which produces failures only when current commit is adding new violations, exiting ones being considered as already known. To prove it works, it also removes the E208 from warn, making it an error. Still, the final linting result is a success because these violations were already present before current commit. Change-Id: Ia858f2a3e71d9634e9d90e890d82714105e8f8c9
90 lines
2.7 KiB
INI
90 lines
2.7 KiB
INI
[tox]
|
|
minversion = 1.6
|
|
skipsdist = True
|
|
envlist = linters
|
|
ignore_basepython_conflict = True
|
|
|
|
[testenv]
|
|
basepython = python3
|
|
install_command = pip install {opts} {packages}
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
commands = stestr run {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:py27]
|
|
deps =
|
|
-r{toxinidir}/test-requirements.txt
|
|
-c{toxinidir}/test-constraints.txt
|
|
basepython = python2.7
|
|
|
|
[testenv:bindep]
|
|
# Do not install any requirements. We want this to be fast and work even if
|
|
# system dependencies are missing, since it's used to tell you what system
|
|
# dependencies are missing! This also means that bindep must be installed
|
|
# separately, outside of the requirements files.
|
|
deps = bindep
|
|
commands = bindep test
|
|
|
|
[testenv:docs]
|
|
deps =
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
sphinx-build -E -W -d doc/build/doctrees -b html doc/source/ doc/build/html
|
|
|
|
[testenv:linters]
|
|
passenv =
|
|
# NOTE(pabelanger): if you'd like to run tox -elinters locally, you'll need
|
|
# to export ANSIBLE_ROLES_PATH pointing to the currect repos.
|
|
# see openstack-zuul-jobs-linters job for more information.
|
|
ANSIBLE_ROLES_PATH
|
|
setenv =
|
|
ANSIBLE_LIBRARY= {toxinidir}/tests/fake-ansible
|
|
whitelist_externals = bash
|
|
deps =
|
|
-r{toxinidir}/linters-requirements.txt
|
|
|
|
commands =
|
|
flake8 {posargs}
|
|
yamllint -s -f parsable .
|
|
python -m ansiblelint --version
|
|
python -m ansiblelint {env:ANSIBLELINT_OPTS:--progressive}
|
|
# Ansible Syntax Check
|
|
bash -c "find playbooks -type f -regex '.*.ya?ml' ! -regex '.*vars\/.*' -exec \
|
|
ansible-playbook --syntax-check -i {toxinidir}/tests/inventory \{\} + > /dev/null"
|
|
{toxinidir}/tools/check_jobs_documented.py
|
|
{toxinidir}/tools/update-test-platforms.py
|
|
bash -c "(( $(find playbooks -name *.yml | wc -l) == 0)) || \{ echo 'Use .yaml'; exit 1; \}"
|
|
bash -c "(( $(find roles -name *.yml | wc -l) == 0)) || \{ echo 'Use .yaml'; exit 1; \}"
|
|
bash -c "git diff --quiet || \{ git status --porcelain; echo 'ERROR: git in dirty status, reporting as failure'; exit 1; \}"
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[flake8]
|
|
# These are ignored intentionally in Zuul projects;
|
|
# please don't submit patches that solely correct them or enable them.
|
|
# E402 - ansible modules put documentation before imports. Align to ansible.
|
|
# W504 - line break after binary operator, we cannot have both
|
|
# W503 and W504 enabled
|
|
ignore = E124,E125,E129,E252,E402,E741,W503,W504,H
|
|
show-source = True
|
|
exclude =
|
|
.cache,
|
|
.venv,
|
|
.tox,
|
|
dist,
|
|
doc,
|
|
build,
|
|
*.egg,
|
|
# vendored files
|
|
roles/use-buildset-registry/module_utils/pytoml.py,
|
|
roles/use-buildset-registry/module_utils/remarshal.py
|
|
|
|
[testenv:update-test-platforms]
|
|
basepython = python3
|
|
deps =
|
|
ruamel.yaml>=0.16.7
|
|
commands =
|
|
python ./tools/update-test-platforms.py
|