Opendev runs a caching mirror for npm packages. Use it when running yarn install during tox tests. Due to the way yarn.lock files work at the moment we need to patch the lockfile on the fly to inject the mirror urls [1]. This can be handlel inside the pip.sh where we patch the lockfile, run yarn and reset it afterwards. [1] https://github.com/yarnpkg/yarn/issues/2566 Change-Id: Id1f2daac8327f3110e6beeb2d6391baccfd3ce34
110 lines
2.9 KiB
INI
110 lines
2.9 KiB
INI
[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
|
|
YARN_REGISTRY
|
|
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
|