update zuul and tox builds

This patch updates the config for tox/zuul by:

- Switching the test running over to stestr like all other projects.
- Adding local tox targets for pep8, py27 and py3; see [1].
- Removes the git install of neutron and sfc from the testenv tox
target as those should be applied generically by the testenv target;
zuul will handle them in the gate and testenv:dev locally.
- Zuul.yaml is updated to properly define neutron and
sfc as required projects so they are pulled into the gate.
- Lower constraints job, tox target and constraints added.

[1] https://etherpad.openstack.org/p/neutron-sibling-setup

Change-Id: Ic840eb5b5b078252c6e69f2a94e3aba2e1f43cab
This commit is contained in:
Boden R 2018-10-23 09:21:17 -06:00
parent dca1fb1954
commit 69b845cb16
7 changed files with 266 additions and 21 deletions

1
.gitignore vendored
View File

@ -26,6 +26,7 @@ pip-log.txt
nosetests.xml
.testrepository
.venv
.stestr
# Translations
*.mo

3
.stestr.conf Normal file
View File

@ -0,0 +1,3 @@
[DEFAULT]
test_path=./tricircle/tests/unit
top_dir=./

View File

@ -20,20 +20,69 @@
- openstack/tricircle
nodeset: legacy-ubuntu-xenial-2-node
- job:
name: tricircle-tox-lower-constraints
parent: openstack-tox-lower-constraints
required-projects:
- openstack/neutron
- openstack/networking-sfc
- job:
name: tricircle-tox-cover
parent: openstack-tox-cover
required-projects:
- openstack/neutron
- openstack/networking-sfc
- project:
templates:
- openstack-cover-jobs
- openstack-python-jobs
- openstack-python35-jobs
- openstack-python-jobs-neutron
- openstack-python35-jobs-neutron
- openstack-python36-jobs
- check-requirements
- publish-openstack-docs-pti
- release-notes-jobs-python3
check:
jobs:
- tricircle-tox-cover
- tricircle-tox-lower-constraints
- openstack-tox-pep8:
required-projects:
- openstack/neutron
- openstack/networking-sfc
- openstack-tox-py27:
required-projects:
- openstack/neutron
- openstack/networking-sfc
- openstack-tox-py35:
required-projects:
- openstack/neutron
- openstack/networking-sfc
- openstack-tox-py36:
required-projects:
- openstack/neutron
- openstack/networking-sfc
- tricircle-functional
- tricircle-multiregion
gate:
jobs:
- tricircle-tox-lower-constraints
- openstack-tox-pep8:
required-projects:
- openstack/neutron
- openstack/networking-sfc
- openstack-tox-py27:
required-projects:
- openstack/neutron
- openstack/networking-sfc
- openstack-tox-py35:
required-projects:
- openstack/neutron
- openstack/networking-sfc
- openstack-tox-py36:
required-projects:
- openstack/neutron
- openstack/networking-sfc
- tricircle-functional
- tricircle-multiregion

157
lower-constraints.txt Normal file
View File

@ -0,0 +1,157 @@
alabaster==0.7.10
alembic==0.8.10
amqp==2.1.1
appdirs==1.3.0
astroid==1.6.5
Babel==2.3.4
bandit==1.1.0
bashate==0.5.1
beautifulsoup4==4.6.0
cachetools==2.0.0
cffi==1.7.0
cliff==2.8.0
cmd2==0.8.0
contextlib2==0.4.0
coverage==4.0
ddt==1.0.1
debtcollector==1.2.0
decorator==3.4.0
deprecation==1.0
docutils==0.11
dogpile.cache==0.6.2
dulwich==0.15.0
eventlet==0.18.2
extras==1.0.0
fasteners==0.7.0
fixtures==3.0.0
flake8-import-order==0.12
flake8==2.6.2
future==0.16.0
futurist==1.2.0
gitdb==0.6.4
GitPython==1.0.1
greenlet==0.4.10
hacking==1.1.0
httplib2==0.9.1
imagesize==0.7.1
iso8601==0.1.11
Jinja2==2.10
jmespath==0.9.0
jsonpatch==1.16
jsonpointer==1.13
jsonschema==2.6.0
keystoneauth1==3.4.0
keystonemiddleware==4.17.0
kombu==4.0.0
linecache2==1.0.0
logilab-common==1.4.1
logutils==0.3.5
Mako==0.4.0
MarkupSafe==1.0
mccabe==0.2.1
mock==2.0.0
monotonic==0.6
mox3==0.20.0
msgpack-python==0.4.0
munch==2.1.0
netaddr==0.7.18
netifaces==0.10.4
neutron-lib==1.20.0
openstackdocstheme==1.18.1
openstacksdk==0.11.2
os-client-config==1.28.0
os-service-types==1.2.0
os-xenapi==0.3.1
osc-lib==1.8.0
oslo.cache==1.26.0
oslo.concurrency==3.26.0
oslo.config==5.2.0
oslo.context==2.19.2
oslo.db==4.27.0
oslo.i18n==3.15.3
oslo.log==3.36.0
oslo.messaging==5.29.0
oslo.middleware==3.31.0
oslo.policy==1.30.0
oslo.privsep==1.23.0
oslo.reports==1.18.0
oslo.rootwrap==5.8.0
oslo.serialization==2.18.0
oslo.service==1.24.0
oslo.upgradecheck==0.1.0
oslo.utils==3.33.0
oslo.versionedobjects==1.31.2
oslosphinx==4.7.0
oslotest==3.2.0
osprofiler==1.4.0
os-testr==1.0.0
ovs==2.8.0
ovsdbapp==0.9.1
Paste==2.0.2
PasteDeploy==1.5.0
pbr==2.0.0
pecan==1.3.2
pep8==1.5.7
pika-pool==0.1.3
pika==0.10.0
positional==1.2.1
prettytable==0.7.2
psutil==3.2.2
pycadf==1.1.0
pycodestyle==2.4.0
pycparser==2.18
pyflakes==0.8.1
Pygments==2.2.0
pyinotify==0.9.6
pylint==1.9.2
PyMySQL==0.7.6
pyparsing==2.1.0
pyperclip==1.5.27
pyroute2==0.4.21
python-cinderclient==3.3.0
python-dateutil==2.5.3
python-designateclient==2.7.0
python-editor==1.0.3
python-glanceclient==2.8.0
python-keystoneclient==3.8.0
python-mimeparse==1.6.0
python-neutronclient==6.7.0
python-novaclient==9.1.0
python-subunit==1.0.0
pytz==2013.6
PyYAML==3.12
reno==2.5.0
repoze.lru==0.7
requests==2.14.2
requests-mock==1.2.0
requestsexceptions==1.2.0
rfc3986==0.3.1
Routes==2.3.1
ryu==4.24
simplejson==3.5.1
six==1.10.0
smmap==0.9.0
snowballstemmer==1.2.1
Sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
sqlalchemy-migrate==0.11.0
SQLAlchemy==1.2.0
sqlparse==0.2.2
statsd==3.2.1
stestr==1.0.0
stevedore==1.20.0
Tempita==0.5.2
tenacity==3.2.1
testrepository==0.0.18
testresources==2.0.0
testscenarios==0.4
testtools==2.2.0
tinyrpc==0.6
traceback2==1.4.0
unittest2==1.1.0
vine==1.1.4
waitress==1.1.0
weakrefmethod==1.0.2
WebOb==1.8.2
WebTest==2.0.27
wrapt==1.7.0

View File

@ -9,7 +9,7 @@ PasteDeploy>=1.5.0 # MIT
Routes>=2.3.1 # MIT
debtcollector>=1.2.0 # Apache-2.0
eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT
pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD
pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.3.2 # BSD
requests>=2.14.2 # Apache-2.0
Jinja2>=2.10 # BSD License (3 clause)
keystoneauth1>=3.4.0 # Apache-2.0
@ -17,9 +17,8 @@ keystonemiddleware>=4.17.0 # Apache-2.0
netaddr>=0.7.18 # BSD
netifaces>=0.10.4 # MIT
neutron-lib>=1.20.0 # Apache-2.0
retrying!=1.3.0,>=1.2.3 # Apache-2.0
SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT
WebOb>=1.7.1 # MIT
SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.2.0 # MIT
WebOb>=1.8.2 # MIT
python-cinderclient>=3.3.0 # Apache-2.0
python-glanceclient>=2.8.0 # Apache-2.0
python-keystoneclient>=3.8.0 # Apache-2.0
@ -43,6 +42,11 @@ oslo.service!=1.28.1,>=1.24.0 # Apache-2.0
oslo.utils>=3.33.0 # Apache-2.0
sqlalchemy-migrate>=0.11.0 # Apache-2.0
# These repos are installed from git in OpenStack CI if the job
# configures them as required-projects:
neutron>=12.0.0 # Apache-2.0
networking-sfc>=6.0.0 # Apache-2.0
# The comment below indicates this project repo is current with neutron-lib
# and should receive neutron-lib consumption patches as they are released
# in neutron-lib. It also implies the project will stay current with TC

View File

@ -9,7 +9,7 @@ mock>=2.0.0 # BSD
python-subunit>=1.0.0 # Apache-2.0/BSD
requests-mock>=1.2.0 # Apache-2.0
docutils>=0.11 # OSI-Approved Open Source, Public Domain
sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
sphinx!=1.6.6,>=1.6.2 # BSD
openstackdocstheme>=1.18.1 # Apache-2.0
testrepository>=0.0.18 # Apache-2.0/BSD
testtools>=2.2.0 # MIT

57
tox.ini
View File

@ -4,21 +4,19 @@ envlist = py35,py27,pypy,pep8
skipsdist = True
[testenv]
sitepackages = True
setenv = VIRTUAL_ENV={envdir}
PYTHONWARNINGS=default::DeprecationWarning
passenv = TRACE_FAILONLY GENERATE_HASHES http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
usedevelop = True
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
PYTHONWARNINGS=default::DeprecationWarning
TRICIRCLE_TEST_DIRECTORY=tricircle/tests
deps =
-r{toxinidir}/test-requirements.txt
-egit+https://git.openstack.org/openstack/neutron@master#egg=neutron
-egit+https://git.openstack.org/openstack/networking-sfc@master#egg=networking-sfc
deps = -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
whitelist_externals =
sh
stestr
commands =
rm -Rf .testrepository/times.dbm
python setup.py testr --slowest --testr-args='{posargs}'
whitelist_externals = rm
stestr run {posargs}
stestr slowest
[testenv:releasenotes]
basepython = python3
@ -63,6 +61,13 @@ commands = python setup.py build_sphinx
basepython = python3
commands = oslo_debug_helper {posargs}
[testenv:lower-constraints]
basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
[flake8]
show-source = True
builtins = _
@ -73,3 +78,29 @@ exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
[hacking]
import_exceptions = tricircle.common.i18n
[testenv:dev]
# run locally (not in the gate) using editable mode
# https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs
# note that order is important to ensure dependencies don't override
commands =
pip install -q -e "git+https://git.openstack.org/openstack/networking-sfc#egg=networking_sfc"
pip install -q -e "git+https://git.openstack.org/openstack/neutron#egg=neutron"
[testenv:py27-dev]
basepython = python2.7
commands =
{[testenv:dev]commands}
{[testenv]commands}
[testenv:py3-dev]
basepython = python3
commands =
{[testenv:dev]commands}
{[testenv]commands}
[testenv:pep8-dev]
basepython = python3
deps = {[testenv]deps}
-r{toxinidir}/test-requirements.txt
commands = flake8