[tox] minversion = 1.6 envlist = checkniceness,checksyntax,checkdeletions,checkbuild,checklang,checklinks skipsdist = True [testenv] basepython=python2.7 setenv = VIRTUAL_ENV={envdir} deps = -r{toxinidir}/test-requirements.txt whitelist_externals = bash cp mkdir rm rsync [testenv:venv] commands = {posargs} [testenv:checklinks] commands = openstack-doc-test --check-links {posargs} [testenv:checkniceness] commands = openstack-doc-test --check-niceness {posargs} flake8 doc8 doc [testenv:checksyntax] commands = openstack-doc-test --check-syntax {posargs} # Check that .po and .pot files are valid: bash -c "find doc -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null" [testenv:checkdeletions] commands = openstack-doc-test --check-deletions {posargs} [testenv:checkbuild] commands = # Build first the www pages so that openstack-doc-test creates a link to # www/www-index.html. mkdir -p publish-docs/www python tools/www-generator.py --source-directory www/ --output-directory publish-docs/www/ cp www/www-index.html publish-docs/ rsync -a www/static/ publish-docs/www/ # Build and copy RST Guides # TODO(ajaeger): We publish to content to allow for reviewing, this needs a # change of openstack-doc-tools to remove content here in the file layout # for previewing. # Build both RST User Guides {toxinidir}/tools/build-user-guides.sh # Copy RST user-guide mkdir -p publish-docs/user-guide/content/ rsync -a doc/user-guides/build/html/ publish-docs/user-guide/content # Copy RST user-guide-admincontent mkdir -p publish-docs/user-guide-admin/content/ rsync -a doc/user-guides/build-admin/html/ publish-docs/user-guide-admin/content/ # Build RST networking guide {toxinidir}/tools/glossary2rst.py doc/networking-guide/source/glossary.rst sphinx-build -E -W doc/networking-guide/source doc/networking-guide/build/html mkdir -p publish-docs/networking-guide/content/ rsync -a doc/networking-guide/build/html/ publish-docs/networking-guide/content/ # Build DocBook Guides, note we do not build the DocBook XML Networking Guide openstack-doc-test --check-build --ignore-book networking-guide {posargs} [testenv:docs] commands = {toxinidir}/tools/build-user-guides.sh {toxinidir}/tools/glossary2rst.py doc/networking-guide/source/glossary.rst sphinx-build -W doc/networking-guide/source doc/networking-guide/build/html [testenv:network] commands = {toxinidir}/tools/glossary2rst.py doc/networking-guide/source/glossary.rst sphinx-build -W doc/networking-guide/source doc/networking-guide/build/html [testenv:publishdocs] # Prepare all documents (except www subdir) so that they can get # published on docs.openstack.org with just copying publish-docs/* # over. commands = # Create directory, it might not be here if openstack-doc-test does # not publish anything. mkdir publish-docs # We only publish changed manuals. # Do not publish DocBook XML Networking Guide openstack-doc-test --check-build --ignore-book networking-guide --publish # Build both RST User Guides {toxinidir}/tools/build-user-guides.sh # Copy RST user-guide mkdir -p publish-docs/user-guide/ rsync -a doc/user-guides/build/html/ publish-docs/user-guide/ # Copy RST user-guide-admin mkdir -p publish-docs/user-guide-admin/ rsync -a doc/user-guides/build-admin/html/ publish-docs/user-guide-admin/ # Build RST Networking Guide {toxinidir}/tools/glossary2rst.py doc/networking-guide/source/glossary.rst sphinx-build -W doc/networking-guide/source doc/networking-guide/build/html # Copy RST Networking Guide as draft mkdir -p publish-docs/draft/networking-guide/ rsync -a doc/networking-guide/build/html/ publish-docs/draft/networking-guide/ # Now publish www as well, we cannot do this from # openstack-doc-test. Use rsync so that .htaccess gets also # copied. python tools/www-generator.py --source-directory www/ --output-directory publish-docs/ rsync -a www/static/ publish-docs/ [testenv:checklang] # Generatedocbook needs xml2po which cannot be installed # in the venv. Since it's installed in the system, let's # use sitepackages. sitepackages=True whitelist_externals = doc-tools-check-languages commands = doc-tools-check-languages doc-tools-check-languages.conf test all [testenv:buildlang] # Run as "tox -e buildlang -- $LANG" # Generatedocbook needs xml2po which cannot be installed # in the venv. Since it's installed in the system, let's # use sitepackages. sitepackages=True whitelist_externals = doc-tools-check-languages commands = doc-tools-check-languages doc-tools-check-languages.conf test {posargs} [testenv:publishlang] # Generatedocbook needs xml2po which cannot be installed # in the venv. Since it's installed in the system, let's # use sitepackages. sitepackages=True whitelist_externals = doc-tools-check-languages commands = doc-tools-check-languages doc-tools-check-languages.conf publish all [testenv:generatepot-rst] # Generate POT files for translation, needs {posargs} like: # tox -e generatepot-rst -- user-guides commands = {toxinidir}/tools/generatepot-rst.sh {posargs} [doc8] # Settings for doc8: # Ignore target directories ignore-path = doc/*/target,doc/*/build # File extensions to use extensions = .rst,.txt # Disable some doc8 checks: # D000: Check RST validity (cannot handle lineos directive) # D001: Ignore lines longer than 79 chars ignore = D000, D001 [flake8] show-source = True # H803 skipped on purpose per list discussion. # E123, E125 skipped as they are invalid PEP-8. ignore = E123,E125,H803 builtins = _ exclude=.venv,.git,.tox,dist,*openstack/common*,*lib/python*,*egg,build,doc/common/samples