[tox] minversion = 3.1 envlist = py3,pep8 skipsdist = True ignore_basepython_conflict = True [testenv] basepython = python3 usedevelop = True install_command = pip install {opts} {packages} passenv = HOME whitelist_externals = bash rm setenv = VIRTUAL_ENV={envdir} PYTHONWARNINGS=default::DeprecationWarning OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_TEST_TIMEOUT=60 deps = -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = stestr run {posargs} [testenv:pep8] # sphinx8 needs the sphinx package which is required via doc/requirements.txt deps = -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt -r{toxinidir}/test-requirements.txt commands = {toxinidir}/tools/run-bashate.sh flake8 {posargs} kayobe # Check the *.rst files # We use a thin wrapper around doc8 currently, which has support for sphinx # directives. {toxinidir}/tools/sphinx8 README.rst CONTRIBUTING.rst doc/source --ignore D001 yamllint etc/kayobe [testenv:venv] deps = -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/test-requirements.txt -r{toxinidir}/doc/requirements.txt commands = {posargs} [testenv:ansible] # FIXME(mgoddard): Ansible playbooks do not yet support Python 3, so we need to run these # tests using Python 2 for the time being. basepython = python2 usedevelop = True # Create the virtualenv with access to system site packages, as this is # required to use the python and apt modules, which are not available via PyPI. sitepackages = True commands = # Install ansible role dependencies from Galaxy. {toxinidir}/tools/ansible-galaxy-retried.sh install \ -r {toxinidir}/requirements.yml \ -p {toxinidir}/ansible/roles {toxinidir}/tools/test-ansible.sh {posargs} [testenv:molecule] deps = -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/test-requirements.txt -r{toxinidir}/doc/requirements.txt whitelist_externals = bash commands = # Install ansible role dependencies from Galaxy. {toxinidir}/tools/ansible-galaxy-retried.sh install \ -r {toxinidir}/requirements.yml \ -p {toxinidir}/ansible/roles bash -c "source {envdir}/bin/activate && {toxinidir}/tools/test-molecule.sh {posargs}" [testenv:alint] commands = ansible-lint ansible/*.yaml [testenv:ansible-syntax] commands = # Install ansible role dependencies from Galaxy. {toxinidir}/tools/ansible-galaxy-retried.sh install \ -r {toxinidir}/requirements.yml \ -p {toxinidir}/ansible/roles # Perform an Ansible syntax check. Skip some playbooks which require extra # variables to be defined. bash -c \ "ansible-playbook \ --connection=local \ --syntax-check \ --list-tasks \ $(find {toxinidir}/ansible \ -maxdepth 1 \ -name '*.yml' \ -not -name idrac-bootstrap-one.yml \ -not -name idrac-bootstrap.yml) \ {posargs}" [testenv:cover] setenv = VIRTUAL_ENV={envdir} PYTHON=coverage run --source kayobe --parallel-mode commands = coverage erase stestr run {posargs} coverage combine coverage report coverage html -d cover coverage xml -o cover/coverage.xml [testenv:docs] deps = -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands = rm -rf doc/build/html sphinx-build -W --keep-going -b html doc/source doc/build/html [testenv:pdf-docs] whitelist_externals = make deps = {[testenv:docs]deps} commands = rm -rf doc/build/pdf sphinx-build -W --keep-going -b latex doc/source doc/build/pdf make -C doc/build/pdf [testenv:debug] commands = oslo_debug_helper {posargs} [testenv:releasenotes] deps = -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands = rm -rf releasenotes/build sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html [flake8] # E123, E125 skipped as they are invalid PEP-8. show-source = True ignore = E123,E125 builtins = _ exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build