[tox] minversion = 3.2 skipsdist = True envlist = linters,py3{-docker} ignore_basepython_conflict = True # TODO(stephenfin): It would be good to set 'requires = tox-docker', but doing # so borks the tools/pip.sh wrapper we're using here and probably isn't what # we want in the gate :( [testenv] basepython = python3 install_command = bash tools/pip.sh {opts} {packages} 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 = DOCKER_* NODEPOOL_ZK_HOST OS_LOG_CAPTURE OS_LOG_DEFAULTS OS_STDERR_CAPTURE OS_STDOUT_CAPTURE ZUUL_MYSQL_HOST ZUUL_POSTGRES_HOST ZUUL_TEST_ROOT usedevelop = True whitelist_externals = bash deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt docker = docker: zookeeper:3.4 commands = bash -c 'stestr run --slowest --concurrency=`python -c "import multiprocessing; print(int(multiprocessing.cpu_count()/2))"` {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. usedevelop = False install_command = pip install {opts} {packages} deps = bindep commands = bindep test [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.740 openapi-spec-validator commands = flake8 {posargs} mypy --ignore-missing-imports zuul openapi-spec-validator web/public/openapi.yaml [testenv:cover] setenv = {[testenv]setenv} PYTHON=coverage run --source zuul --parallel-mode commands = stestr run {posargs} coverage combine coverage html -d cover coverage xml -o cover/coverage.xml [testenv:docs] 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} [testenv:nodepool] commands = stestr run --concurrency=1 --test-path ./tests/nodepool {posargs} [testenv:remote] passenv = DOCKER_* NODEPOOL_ZK_HOST OS_LOG_CAPTURE OS_LOG_DEFAULTS OS_STDERR_CAPTURE OS_STDOUT_CAPTURE ZUUL_REMOTE_IPV4 ZUUL_SSH_KEY ZUUL_TEST_ROOT commands = stestr run --test-path ./tests/remote {posargs} [flake8] # These are ignored intentionally in zuul projects; # please don't submit patches that solely correct them or enable them. ignore = E124,E125,E129,E252,E402,E741,H,W503,W504 show-source = True exclude = .venv,.tox,dist,doc,build,*.egg,node_modules