zuul-base-jobs/tox.ini
James E. Blair d20695814d Update zuul ansible location
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
2019-03-18 12:14:38 -07:00

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