update tox envs and support pdf docs

- adds support for building PDF docs.
- adds a bindep.txt file with required deps for pdf docs
- groups the tox envs into logicaly related sections.
- This change updates the default set of jobs so that
  runing tox with out any arguments should run the
  default set of jobs that should pass before pushing
  changes for review.

Change-Id: Id5df8afe576881cba58b3288acd79501ef1de511
This commit is contained in:
Sean Mooney 2020-05-14 11:33:25 +00:00
parent 041ce67619
commit 68c4edba14
4 changed files with 47 additions and 21 deletions

1
.gitignore vendored
View File

@ -29,6 +29,7 @@ nosetests.xml
.testrepository .testrepository
.venv .venv
.stestr .stestr
cover
# Translations # Translations
*.mo *.mo

View File

@ -129,6 +129,7 @@
- openstack-python3-victoria-jobs - openstack-python3-victoria-jobs
- publish-openstack-docs-pti - publish-openstack-docs-pti
- release-notes-jobs-python3 - release-notes-jobs-python3
- openstack-cover-jobs
check: check:
jobs: jobs:
- kuryr-kubernetes-tempest: - kuryr-kubernetes-tempest:

View File

@ -1,5 +1,10 @@
# This is a cross-platform list tracking distribution packages needed for install and tests; # This is a cross-platform list tracking distribution packages needed for install and tests;
# see https://docs.openstack.org/infra/bindep/ for additional information. # see https://docs.openstack.org/infra/bindep/ for additional information.
libffi-dev [platform:dpkg test] libffi-dev [platform:dpkg test]
libffi-devel [platform:rpm test] libffi-devel [platform:rpm test]
make [pdf-docs]
texlive [pdf-docs]
texlive-xetex [pdf-docs]
texlive-latex-recommended [pdf-docs]
latexmk [pdf-docs]

57
tox.ini
View File

@ -1,39 +1,26 @@
[tox] [tox]
minversion = 3.1.1 minversion = 3.1.1
envlist = py37,pep8 envlist = py3,pep8,docs,releasenotes,cover,lower-constraints
skipsdist = True skipsdist = True
ignore_basepython_conflict = True ignore_basepython_conflict = True
[testenv] [testenv]
basepython = python3 basepython = python3
usedevelop = True usedevelop = True
install_command = pip install -U {opts} {packages}
setenv = setenv =
VIRTUAL_ENV={envdir}
CONSTRAINTS_OPT=-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} CONSTRAINTS_OPT=-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
deps = deps =
{env:CONSTRAINTS_OPT} {env:CONSTRAINTS_OPT}
-r{toxinidir}/requirements.txt -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
whitelist_externals = bash
commands = stestr run --black-regex ".tests.functional" {posargs} commands = stestr run --black-regex ".tests.functional" {posargs}
[testenv:pep8]
commands = flake8
[testenv:venv]
commands = {posargs}
deps =
{env:CONSTRAINTS_OPT}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/doc/requirements.txt
[testenv:functional] [testenv:functional]
envdir = {toxworkdir}/shared
setenv = setenv =
{[testenv]setenv} {[testenv]setenv}
commands = commands =
stestr run --black-regex ".tests.unit" '{posargs}' stestr run --black-regex ".tests.unit" {posargs}
[testenv:docs] [testenv:docs]
deps = deps =
@ -41,10 +28,20 @@ deps =
-r{toxinidir}/doc/requirements.txt -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -W -b html doc/source doc/build/html commands = sphinx-build -W -b html doc/source doc/build/html
[testenv:pdf-docs]
envdir = {toxworkdir}/docs
deps = {[testenv:docs]deps}
whitelist_externals =
rm
make
commands =
rm -rf doc/build/pdf
sphinx-build -W -b latex doc/source doc/build/pdf
make -C doc/build/pdf
[testenv:releasenotes] [testenv:releasenotes]
deps = envdir = {toxworkdir}/docs
{env:CONSTRAINTS_OPT} deps = {[testenv:docs]deps}
-r{toxinidir}/doc/requirements.txt
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:lower-constraints] [testenv:lower-constraints]
@ -57,6 +54,28 @@ commands =
stestr run --black-regex ".tests.functional" {posargs} stestr run --black-regex ".tests.functional" {posargs}
sphinx-build -W doc/source doc/build sphinx-build -W doc/source doc/build
[testenv:venv]
commands = {posargs}
deps =
{[testenv]deps}
-r{toxinidir}/doc/requirements.txt
[testenv:cover]
envdir = {toxworkdir}/shared
setenv =
{[testenv]setenv}
PYTHON=coverage run --source os_vif,vif_plug_linux_bridge,vif_plug_ovs,vif_plug_noop --parallel-mode
commands =
stestr run --black-regex ".tests.functional" {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
coverage report
[testenv:pep8]
envdir = {toxworkdir}/shared
commands = flake8
[flake8] [flake8]
# E123, E125 skipped as they are invalid PEP-8. # E123, E125 skipped as they are invalid PEP-8.
# Following checks are ignored on purpose. # Following checks are ignored on purpose.