[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 sed [testenv:venv] commands = {posargs} [testenv:checklinks] commands = openstack-doc-test --check-links {posargs} [testenv:checkniceness] commands = openstack-doc-test --check-niceness {posargs} flake8 [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 RST playground-user-guide sphinx-build -E -W doc/playground-user-guide/source/ doc/playground-user-guide/build/html mkdir -p publish-docs/playground-user-guide/content/ rsync -a doc/playground-user-guide/build/html/ publish-docs/playground-user-guide/content/ # Build RST user-guide-admincontent sphinx-build -t admin_only -E -W doc/playground-user-guide/source/ doc/playground-user-guide/build-admin/html mkdir -p publish-docs/playground-user-guide-admin/content/ rsync -a doc/playground-user-guide/build-admin/html/ publish-docs/playground-user-guide-admin/content/ # Build RST networking guide 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 = sphinx-build -E -W doc/playground-user-guide/source/ doc/playground-user-guide/build/html sphinx-build -t admin_only -E -W doc/playground-user-guide/source/ doc/playground-user-guide/build-admin/html sphinx-build -E -W doc/networking-guide/source doc/networking-guide/build/html [testenv:network] commands = 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 Install Guide and DocBook XML Networking Guide openstack-doc-test --check-build --ignore-book install-guide --ignore-book networking-guide --publish # 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 -- playground-user-guide 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 [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