From 68c4edba14908bdc5670097511298985304b6dc6 Mon Sep 17 00:00:00 2001 From: Sean Mooney Date: Thu, 14 May 2020 11:33:25 +0000 Subject: [PATCH] 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 --- .gitignore | 1 + .zuul.yaml | 1 + bindep.txt | 7 ++++++- tox.ini | 59 ++++++++++++++++++++++++++++++++++++------------------ 4 files changed, 47 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 6242f657..e4d36175 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ nosetests.xml .testrepository .venv .stestr +cover # Translations *.mo diff --git a/.zuul.yaml b/.zuul.yaml index 9a6d469c..87dc9398 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -129,6 +129,7 @@ - openstack-python3-victoria-jobs - publish-openstack-docs-pti - release-notes-jobs-python3 + - openstack-cover-jobs check: jobs: - kuryr-kubernetes-tempest: diff --git a/bindep.txt b/bindep.txt index 986c66b1..d38df520 100644 --- a/bindep.txt +++ b/bindep.txt @@ -1,5 +1,10 @@ # This is a cross-platform list tracking distribution packages needed for install and tests; # see https://docs.openstack.org/infra/bindep/ for additional information. - libffi-dev [platform:dpkg test] libffi-devel [platform:rpm test] +make [pdf-docs] +texlive [pdf-docs] +texlive-xetex [pdf-docs] +texlive-latex-recommended [pdf-docs] +latexmk [pdf-docs] + diff --git a/tox.ini b/tox.ini index 1fd648d4..2b8e6c39 100644 --- a/tox.ini +++ b/tox.ini @@ -1,39 +1,26 @@ [tox] minversion = 3.1.1 -envlist = py37,pep8 +envlist = py3,pep8,docs,releasenotes,cover,lower-constraints skipsdist = True ignore_basepython_conflict = True [testenv] basepython = python3 usedevelop = True -install_command = pip install -U {opts} {packages} setenv = - VIRTUAL_ENV={envdir} CONSTRAINTS_OPT=-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} deps = {env:CONSTRAINTS_OPT} -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt -whitelist_externals = bash 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] +envdir = {toxworkdir}/shared setenv = - {[testenv]setenv} + {[testenv]setenv} commands = - stestr run --black-regex ".tests.unit" '{posargs}' + stestr run --black-regex ".tests.unit" {posargs} [testenv:docs] deps = @@ -41,10 +28,20 @@ deps = -r{toxinidir}/doc/requirements.txt 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] -deps = - {env:CONSTRAINTS_OPT} - -r{toxinidir}/doc/requirements.txt +envdir = {toxworkdir}/docs +deps = {[testenv:docs]deps} commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [testenv:lower-constraints] @@ -57,6 +54,28 @@ commands = stestr run --black-regex ".tests.functional" {posargs} 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] # E123, E125 skipped as they are invalid PEP-8. # Following checks are ignored on purpose.