d20695814d
With multi-ansible support, the location of the zuul plugins/modules has moved. Also, pin ansible-lint to match the version in zuul-jobs. Note we move all the deps for the linters job into test-requirements.txt then consume the deps there under the tox linters target. This makes it easier to see where deps are listed. Finally bump hacking version up so that modern flake8 works with it. Change-Id: I8e2cf1f2276bca5a912fed52062628b3b9d0d6d9
63 lines
2.0 KiB
INI
63 lines
2.0 KiB
INI
[tox]
|
|
minversion = 1.6
|
|
skipsdist = True
|
|
envlist = linters
|
|
|
|
[testenv]
|
|
basepython = python3
|
|
install_command = pip install {opts} {packages}
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
python setup.py testr --slowest --testr-args='{posargs}'
|
|
|
|
[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]
|
|
commands =
|
|
sphinx-build -E -W -d doc/build/doctrees -b html doc/source/ doc/build/html
|
|
|
|
|
|
[testenv:linters]
|
|
basepython = python3
|
|
whitelist_externals = bash
|
|
setenv =
|
|
ANSIBLE_LIBRARY= {envdir}/src/zuul/zuul/ansible/base/library
|
|
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 infra-zuul-jobs-linters job for more information.
|
|
ANSIBLE_ROLES_PATH
|
|
# Add dependencies here since other jobs use python2 and zuul requires
|
|
# python3.
|
|
deps =
|
|
# Zuul is required to supply the zuul ansible modules for ansible-lint
|
|
-egit+https://git.openstack.org/openstack-infra/zuul#egg=zuul
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
flake8 {posargs}
|
|
# Ansible lint
|
|
# [ANSIBLE0012] Commands should not change things if nothing needs doing
|
|
bash -c "find playbooks -type f -regex '.*.ya?ml' -print0 | \
|
|
xargs -t -n1 -0 ansible-lint -xANSIBLE0012"
|
|
# Ansible Syntax Check
|
|
bash -c "find playbooks -type f -regex '.*.ya?ml' -exec \
|
|
ansible-playbook --syntax-check -i {toxinidir}/tests/inventory \
|
|
\{\} + > /dev/null"
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[flake8]
|
|
# These are ignored intentionally in openstack-infra projects;
|
|
# please don't submit patches that solely correct them or enable them.
|
|
# E402 - ansible modules put documentation before imports. Align to ansible.
|
|
ignore = E125,E129,E402,H
|
|
show-source = True
|
|
exclude = .venv,.tox,dist,doc,build,*.egg
|