[tox] minversion = 3.2 skipsdist = True envlist = linters,py3{-docker} ignore_basepython_conflict = True [testenv] basepython = python3 setenv = VIRTUAL_ENV={envdir} OS_TEST_TIMEOUT=360 OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:1} OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:1} OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:1} passenv = OS_LOG_CAPTURE OS_LOG_DEFAULTS OS_STDERR_CAPTURE OS_STDOUT_CAPTURE usedevelop = True whitelist_externals = bash rm deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = bash -c 'stestr run --slowest --concurrency=`python -c "import multiprocessing; print(int(multiprocessing.cpu_count()/2))"` {posargs}' [testenv:linters] usedevelop = False install_command = pip install {opts} {packages} # --ignore-missing-imports tells mypy to not try to follow imported modules # out of the current tree. As you might expect, we don't want to run static # type checking on the world - just on ourselves. deps = flake8 mypy<0.790 twine>=3.3.0 commands = flake8 {posargs} mypy --ignore-missing-imports zuulclient # metadata validation rm -rfv {toxinidir}/dist/ python setup.py sdist bdist_wheel twine check --strict {toxinidir}/dist/* [testenv:cover] setenv = {[testenv]setenv} PYTHON=coverage run --source zuulclient --parallel-mode commands = stestr run {posargs} coverage combine coverage html -d cover coverage xml -o cover/coverage.xml [testenv:docs] usedevelop = True install_command = pip install {opts} {packages} deps = -r{toxinidir}/doc/requirements.txt -r{toxinidir}/test-requirements.txt commands = sphinx-build -E -W -d doc/build/doctrees -b html doc/source/ doc/build/html [testenv:venv] commands = {posargs}