[tox] minversion = 4.4 skipsdist = True envlist = linters,docs,releasenotes,inventory,py3-inventory [testenv] usedevelop = True install_command = pip install -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages} deps = -r{toxinidir}/global-requirement-pins.txt -r{toxinidir}/test-requirements.txt passenv = COMMON_TESTS_PATH HOME http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY TESTING_BRANCH TESTING_HOME USER allowlist_externals = bash setenv = PYTHONUNBUFFERED=1 PYTHONWARNINGS=default::DeprecationWarning VIRTUAL_ENV={envdir} WORKING_DIR={toxinidir} ANSIBLE_EXTRA_ROLE_DIRS={toxinidir}/playbooks/roles:{homedir}/.ansible/roles/ceph-ansible/roles ANSIBLE_ROLE_REQUIREMENTS_PATH={toxinidir}/ansible-role-requirements.yml TEST_PLAYBOOK={toxinidir}/tests/bootstrap-aio.yml {toxinidir}/playbooks/setup-everything.yml ANSIBLE_LINT_PARAMS=--exclude={homedir}/.ansible/roles [testenv:docs] deps = -r{toxinidir}/doc/requirements.txt commands = doc8 doc docstheme-build-translated.sh setenv = SPHINX_WARNINGS_TRANS=1 [testenv:deploy-guide] deps = -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -E -W -d deploy-guide/build/doctrees --keep-going -b html deploy-guide/source deploy-guide/build/html [testenv:deploy-guide-pdf-docs] deps = {[testenv:deploy-guide]deps} allowlist_externals = make commands = sphinx-build -W --keep-going -b latex deploy-guide/source deploy-guide/build/pdf make -C deploy-guide/build/pdf [testenv:pdf-docs] deps = {[testenv:docs]deps} allowlist_externals = make commands = sphinx-build -W --keep-going -b latex doc/source doc/build/pdf make -C doc/build/pdf [doc8] # Settings for doc8: extensions = .rst ignore = D001 [testenv:releasenotes] deps = -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html # environment used by the -infra templated docs job [testenv:venv] commands = {posargs} [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 # E124 closing bracket does not match visual indentation # W503 line break before binary operator ignore=F403,E124,W503 [testenv:ansible] deps = {[testenv]deps} -r{toxinidir}/global-requirement-pins.txt [testenv:inventory] # Use a fixed seed since some inventory tests rely on specific ordering deps = {[testenv]deps} -e . # NOTE(noonedeadpunk): Overriding install_command is a temporary solution until `requests` module version # will be updated in u-c as it's incompatible with ansible-lint requirements. install_command = pip install {opts} {packages} setenv = {[testenv]setenv} PYTHONHASHSEED = 100 commands = coverage erase coverage run -a {toxinidir}/tests/test_inventory.py coverage run -a {toxinidir}/tests/test_manage.py coverage run -a {toxinidir}/tests/test_dictutils.py coverage run -a {toxinidir}/tests/test_ip.py coverage run -a {toxinidir}/tests/test_filesystem.py coverage run -a {toxinidir}/tests/test_releases.py coverage report --show-missing --include={toxinidir}/inventory/*,{toxinidir}/osa_toolkit/* [testenv:py3-inventory] setenv = {[testenv:inventory]setenv} commands = {[testenv:inventory]commands} [testenv:molecule] # You can use DOCKER_REGISTRY and DOCKER_IMAGE_TAG to switch between # tested distros. I.e: # DOCKER_IMAGE_TAG=ubuntu-systemd:noble tox -e molecule deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -rtest-requirements.txt commands = molecule test passenv = {[testenv]passenv} DOCKER_REGISTRY DOCKER_IMAGE_TAG DOCKER_COMMAND