zuul/tox.ini
Tobias Henkel fe0dfd6ede
Run tox remote concurrent
Adding more ansible versions lead to longer runtimes so we need to
either run those tests concurrently or split them per ansible version
and run one job per ansible version.

Change-Id: I41574d8f5c0f7f5fa2c5272044d6b387def5bfa7
2019-03-15 09:09:17 +01:00

96 lines
2.9 KiB
INI

[tox]
minversion = 3.1
skipsdist = True
envlist = pep8,py35
ignore_basepython_conflict = True
[testenv]
basepython = python3
setenv = VIRTUAL_ENV={envdir}
OS_TEST_TIMEOUT=150
OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:1}
OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:1}
OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:1}
OS_LOG_DEFAULTS={env:OS_LOG_DEFAULTS:""}
passenv = ZUUL_TEST_ROOT
OS_STDOUT_CAPTURE
OS_STDERR_CAPTURE
OS_LOG_CAPTURE
OS_LOG_DEFAULTS
NODEPOOL_ZK_HOST
ZUUL_MYSQL_HOST
ZUUL_POSTGRES_HOST
usedevelop = True
install_command = pip install {opts} {packages}
whitelist_externals = bash
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands_pre = zuul-manage-ansible -v
commands = stestr run {posargs}
stestr slowest
[nodeenv]
install_command = bash tools/pip.sh {opts} {packages}
[testenv:py35]
install_command = {[nodeenv]install_command}
[testenv:py36]
install_command = {[nodeenv]install_command}
[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:pep8]
# --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.
commands_pre =
commands =
flake8 {posargs}
mypy --ignore-missing-imports zuul
[testenv:cover]
install_command = {[nodeenv]install_command}
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]
deps = -r{toxinidir}/doc/requirements.txt
-r{toxinidir}/test-requirements.txt
commands_pre =
commands =
sphinx-build -E -W -d doc/build/doctrees -b html doc/source/ doc/build/html
[testenv:venv]
commands = {posargs}
[testenv:nodepool]
commands_pre =
install_command = {[nodeenv]install_command}
commands = stestr run --concurrency=1 --test-path ./tests/nodepool {posargs}
[testenv:remote]
commands_pre = zuul-manage-ansible -v
commands = stestr run --test-path ./tests/remote {posargs}
passenv = ZUUL_TEST_ROOT OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE OS_LOG_DEFAULTS ZUUL_REMOTE_IPV4 ZUUL_SSH_KEY NODEPOOL_ZK_HOST
install_command = {[nodeenv]install_command}
[flake8]
# These are ignored intentionally in openstack-infra 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