zuul-base-jobs/tox.ini
James E. Blair e5638ba061 Update bindep.txt to python3
This is used for docs and linting jobs.

Also update the tox.ini file to correct the egg name for the
zuul dep and other tox changes.

Upgrade ansible-lint to a version that works on noble.

Change-Id: Ie329be30a3ab29774be67ef9f7f07bfb1c4f0abb
2024-11-12 14:22:49 -08: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
allowlist_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://opendev.org/zuul/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