The nodepool-functional-container-openstack-siblings builds nodepool container images (with openstacksdk and other "siblings" of nodepool from source) and runs the build/boot tests with that. The container builds of these tools are what OpenDev uses in production, so this is more practical testing than installing by parts on a bare Bionic system. This allows us to remove the job duplication in nodepool. Backport note: this backport uses centos-8 stream job, which was introduced with97ccea4683. This should allow us to remove the non-container versions of these jobs from nodepool tree. Futher backport notes: This branch required a few extras to get the gate in a state we can commit: * tox pep8 dependencies pinned to the versions when they last worked * several devstack jobs made non-voting, removed. I bet they all fail from the same root cause, but I don't know what that is, and I doubt anyone wants to debug this. * bifrost xenial job turned -nv, see Ife258aa7229afed0099036bb2051be73f695b547 Cherry-picked from5db7d5573aNeeded-By: https://review.opendev.org/c/zuul/nodepool/+/788406 Change-Id: I91345ebf509238ca1f800cb595818c023cc56b0d
120 lines
3.7 KiB
INI
120 lines
3.7 KiB
INI
[tox]
|
|
minversion = 3.1
|
|
envlist = pep8,py37,py36,py35,py27
|
|
skipsdist = True
|
|
ignore_basepython_conflict = True
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
install_command = pip install {opts} {packages}
|
|
passenv = OS_* OPENSTACKSDK_*
|
|
basepython = {env:OPENSTACKSDK_TOX_PYTHON:python3}
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
LANG=en_US.UTF-8
|
|
LANGUAGE=en_US:en
|
|
LC_ALL=C
|
|
OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:true}
|
|
OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:true}
|
|
OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true}
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/stein}
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
commands = stestr run {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:examples]
|
|
commands = stestr --test-path ./openstack/tests/examples run {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:functional]
|
|
# Some jobs (especially heat) takes longer, therefore increase default timeout
|
|
# This timeout should not be smaller, than the longest individual timeout
|
|
setenv =
|
|
{[testenv]setenv}
|
|
OS_TEST_TIMEOUT=600
|
|
OPENSTACKSDK_FUNC_TEST_TIMEOUT_LOAD_BALANCER=600
|
|
commands = stestr --test-path ./openstack/tests/functional/{env:OPENSTACKSDK_TESTS_SUBDIR:} run --serial {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:pep8]
|
|
usedevelop = False
|
|
skip_install = True
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/stein}
|
|
doc8
|
|
flake8 < 3.8.0
|
|
hacking < 3.0.0
|
|
pygments
|
|
readme
|
|
commands =
|
|
doc8 doc/source
|
|
flake8
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:debug]
|
|
# allow 1 year, or 31536000 seconds, to debug a test before it times out
|
|
setenv = OS_TEST_TIMEOUT=31536000
|
|
whitelist_externals = find
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
oslo_debug_helper -t openstack/tests {posargs}
|
|
|
|
[testenv:cover]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHON=coverage run --source openstack --parallel-mode
|
|
commands =
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
|
|
[testenv:ansible]
|
|
# Need to pass some env vars for the Ansible playbooks
|
|
basepython = {env:OPENSTACKSDK_TOX_PYTHON:python2}
|
|
passenv = HOME USER ANSIBLE_VAR_*
|
|
deps =
|
|
{[testenv]deps}
|
|
ansible
|
|
commands = {toxinidir}/extras/run-ansible-tests.sh -e {envdir} {posargs}
|
|
|
|
[testenv:docs]
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/stein}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands = sphinx-build -W -d doc/build/doctrees -b html doc/source/ doc/build/html
|
|
|
|
[testenv:releasenotes]
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/stein}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
|
|
[flake8]
|
|
# The following are ignored on purpose. It's not super worth it to fix them.
|
|
# However, if you feel strongly about it, patches will be accepted to fix them
|
|
# if they fix ALL of the occurances of one and only one of them.
|
|
# H306 Is about alphabetical imports - there's a lot to fix.
|
|
# H4 Are about docstrings and there's just a huge pile of pre-existing issues.
|
|
# W503 Is supposed to be off by default but in the latest pycodestyle isn't.
|
|
# Also, both openstacksdk and Donald Knuth disagree with the rule. Line
|
|
# breaks should occur before the binary operator for readability.
|
|
ignore = H306,H4,W503
|
|
show-source = True
|
|
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
|
|
|
|
[doc8]
|
|
extensions = .rst, .yaml
|
|
|
|
[testenv:lower-constraints]
|
|
deps =
|
|
-c{toxinidir}/lower-constraints.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|