diff --git a/test-requirements.txt b/test-requirements.txt index ed3b11fcae..6284019db4 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,14 +1,14 @@ # The order of packages is significant, because pip processes them in the order # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. -pbr>=0.6,!=0.7,<1.0 +pbr>=0.11,<2.0 # Hacking already pins down pep8, pyflakes and flake8 hacking>=0.10.0,<0.11 beautifulsoup4 Jinja2>=2.6 # BSD License (3 clause) -openstack-doc-tools>=0.26 +openstack-doc-tools>=0.27 sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3 openstackdocstheme>=1.0.7 doc8 # Apache-2.0 diff --git a/tools/copy-to-branch.sh b/tools/copy-to-branch.sh deleted file mode 100755 index 81df82a44d..0000000000 --- a/tools/copy-to-branch.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -xe -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# -# Copy files from trunk to named branch and replace all links from -# trunk with links to the branch - -BRANCH=$1 - -if [ -z "$BRANCH" ] ; then - echo "usage $0 BRANCH" - exit 1 -fi - -if [ -e publish-docs/trunk ] ; then - - # Copy files over - cp -a publish-docs/trunk publish-docs/$BRANCH - - for f in $(find publish-docs/$BRANCH -name "atom.xml") ; do - sed -i -e "s|/trunk/|/$BRANCH/|g" $f - done - for f in $(find publish-docs/$BRANCH -name "*.html") ; do - sed -i -e "s|/trunk/|/$BRANCH/|g" $f - done -fi diff --git a/tools/publishdocs.sh b/tools/publishdocs.sh new file mode 100755 index 0000000000..a373449755 --- /dev/null +++ b/tools/publishdocs.sh @@ -0,0 +1,72 @@ +#!/bin/bash -xe +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +PUBLISH=$1 + +if [[ -z "$PUBLISH" ]] ; then + echo "usage $0 (publish|check)" + exit 1 +fi + +# Copy files from draft to named branch and replace all links from +# draft with links to the branch +function copy_to_branch { + BRANCH=$1 + + if [ -e publish-docs/draft ] ; then + + # Copy files over + cp -a publish-docs/draft publish-docs/$BRANCH + + for f in $(find publish-docs/$BRANCH -name "atom.xml"); do + sed -i -e "s|/draft/|/$BRANCH/|g" $f + done + for f in $(find publish-docs/$BRANCH -name "*.html"); do + sed -i -e "s|/draft/|/$BRANCH/|g" $f + done + fi +} + +mkdir -p publish-docs + +# Build End User Guide +tools/build-rst.sh doc/user-guide --glossary --tag user_only --build build \ + --target user-guide + +# Build Admin User Guide +# No need to build the glossary again here. +tools/build-rst.sh doc/user-guide-admin --tag admin_only --build build \ + --target user-guide-admin + +# Build Networking Guide +tools/build-rst.sh doc/networking-guide --build build \ + --target networking-guide + +# Build the www pages so that openstack-doc-test creates a link to +# www/www-index.html. +python tools/www-generator.py --source-directory www/ --output-directory publish-docs/ +rsync -a www/static/ publish-docs/ +if [ "$PUBLISH" = "publish" ] ; then + # Don't publish this file + rm publish-docs/www-index.html +fi + +# We only publish changed manuals. +if [ "$PUBLISH" = "publish" ] ; then + openstack-doc-test --check-build --publish + # For publishing to both /draft and /BRANCH + copy_to_branch kilo +else + openstack-doc-test --check-build +fi diff --git a/tox.ini b/tox.ini index 7dbe80d4c0..b6110cb972 100644 --- a/tox.ini +++ b/tox.ini @@ -38,27 +38,7 @@ 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 - # 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-guide/build/html/ publish-docs/user-guide/ - # Copy RST user-guide-admin - mkdir -p publish-docs/user-guide-admin/ - rsync -a doc/user-guide-admin/build/html/ publish-docs/user-guide-admin/ - # Build RST networking guide - sphinx-build -E -W doc/networking-guide/source doc/networking-guide/build/html - mkdir -p publish-docs/networking-guide/ - rsync -a doc/networking-guide/build/html/ publish-docs/networking-guide/ - # Build DocBook Guides - openstack-doc-test --check-build {posargs} + {toxinidir}/tools/publishdocs.sh build [testenv:docs] commands = @@ -75,41 +55,7 @@ commands = # 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 -p publish-docs - # We only publish changed manuals. - openstack-doc-test --check-build --publish - # TODO(jaegerandi): Remove the following lines before we branch off - # a kilo branch. - # Do not publish Debian guide - rm -rf publish-docs/draft/install-guide/install/apt-debian - # Publish install-guide and config-reference to /kilo - bash -c "cp -a publish-docs/draft publish-docs/kilo || true" - # Replace links to /draft with links to /kilo/ - # This needs bash so that tox does not interpret the * - bash -c "sed -i -e 's|/draft/|/kilo/|g' publish-docs/kilo/*/atom.xml publish-docs/kilo/*/*/*/atom.xml publish-docs/kilo/*/*.html publish-docs/kilo/*/*/*/*/*.html publish-docs/kilo/*/*/*/*.html publish-docs/kilo/*/*/*.html publish-docs/kilo/*/*.html || true" - # END Kilo duplication. - # 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-guide/build/html/ publish-docs/user-guide/ - # Copy RST user-guide-admin - mkdir -p publish-docs/user-guide-admin/ - rsync -a doc/user-guide-admin/build/html/ publish-docs/user-guide-admin/ - # Build RST Networking Guide - sphinx-build -W doc/networking-guide/source doc/networking-guide/build/html - # Copy RST Networking Guide - mkdir -p publish-docs/networking-guide/ - rsync -a doc/networking-guide/build/html/ publish-docs/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/ - # Don't publish this file - rm publish-docs/www-index.html + {toxinidir}/tools/publishdocs.sh publish [testenv:checklang] # Generatedocbook needs xml2po which cannot be installed