Rework RST building
Use the same shell scripts like openstack-manuals for building of RST files. This simplifies the tox.ini file and allows easier adding of new tags. This now build dotnet, fog, and pkgcloud versions as draft documents and continues to publish the libcloud version. Change-Id: Id5deebbb54904a44691104e19ef60f15a14c0f7c
This commit is contained in:
parent
68faf2882c
commit
3330718f4b
5
tools/build-all-rst.sh
Executable file
5
tools/build-all-rst.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
mkdir -p publish-docs
|
||||
|
||||
tools/build-firstapp-rst.sh
|
15
tools/build-firstapp-rst.sh
Executable file
15
tools/build-firstapp-rst.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
mkdir -p publish-docs
|
||||
|
||||
# Publish documents to api-ref for developer.openstack.org
|
||||
for tag in libcloud; do
|
||||
tools/build-rst.sh firstapp \
|
||||
--tag ${tag} --target "api-ref/firstapp-${tag}"
|
||||
done
|
||||
|
||||
# Draft documents
|
||||
for tag in dotnet fog pkgcloud; do
|
||||
tools/build-rst.sh firstapp \
|
||||
--tag ${tag} --target "draft/firstapp-${tag}"
|
||||
done
|
78
tools/build-rst.sh
Executable file
78
tools/build-rst.sh
Executable file
@ -0,0 +1,78 @@
|
||||
#!/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.
|
||||
|
||||
DIRECTORY=$1
|
||||
|
||||
if [ -z "$DIRECTORY" ] ; then
|
||||
echo "usage $0 DIRECTORY options"
|
||||
echo "Options are:"
|
||||
echo "--glossary: Build glossary"
|
||||
echo "--tag TAG: Use given tag for building"
|
||||
echo "--target TARGET: Copy files to publish-docs/$TARGET"
|
||||
echo "--build BUILD: Name of build directory"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
GLOSSARY=0
|
||||
TARGET=""
|
||||
TAG=""
|
||||
TAG_OPT=""
|
||||
BUILD=""
|
||||
|
||||
while [[ $# > 1 ]] ; do
|
||||
option="$1"
|
||||
case $option in
|
||||
--glossary)
|
||||
GLOSSARY=1
|
||||
;;
|
||||
--tag)
|
||||
TAG="$2"
|
||||
TAG_OPT="-t $2"
|
||||
shift
|
||||
;;
|
||||
--target)
|
||||
TARGET="$2"
|
||||
shift
|
||||
;;
|
||||
--build)
|
||||
BUILD="$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
|
||||
if [ "$GLOSSARY" -eq "1" ] ; then
|
||||
echo "Generating Glossary"
|
||||
tools/glossary2rst.py doc/common-rst/glossary.rst
|
||||
fi
|
||||
|
||||
if [ -z "$BUILD" ] ; then
|
||||
if [ -z "$TAG" ] ; then
|
||||
BUILD_DIR="$DIRECTORY/build/html"
|
||||
else
|
||||
BUILD_DIR="$DIRECTORY/build-${TAG}/html"
|
||||
fi
|
||||
else
|
||||
BUILD_DIR="$DIRECTORY/$BUILD/html"
|
||||
fi
|
||||
|
||||
sphinx-build -E -W $TAG_OPT $DIRECTORY/source $BUILD_DIR
|
||||
|
||||
# Copy RST
|
||||
if [ "$TARGET" != "" ] ; then
|
||||
mkdir -p publish-docs/$TARGET
|
||||
rsync -a $BUILD_DIR/ publish-docs/$TARGET/
|
||||
fi
|
23
tox.ini
23
tox.ini
@ -37,16 +37,7 @@ commands = openstack-doc-test --check-deletions {posargs}
|
||||
[testenv:checkbuild]
|
||||
commands =
|
||||
# Build and copy RST Guides
|
||||
# Include only environments that are (partially) written
|
||||
# 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.
|
||||
sphinx-build -E -W -t libcloud firstapp/source firstapp/build-libcloud/html
|
||||
mkdir -p publish-docs/firstapp-libcloud/content
|
||||
rsync -a firstapp/build-libcloud/html/ publish-docs/firstapp-libcloud/content/
|
||||
sphinx-build -E -W -t fog firstapp/source firstapp/build-fog/html
|
||||
mkdir -p publish-docs/firstapp-fog/content
|
||||
rsync -a firstapp/build-fog/html/ publish-docs/firstapp-fog/content/
|
||||
{toxinidir}/tools/build-all-rst.sh
|
||||
# Build DocBook Guides
|
||||
openstack-doc-test --check-build {posargs}
|
||||
|
||||
@ -63,10 +54,10 @@ commands =
|
||||
openstack-doc-test --check-build --publish --only-book api-ref --only-book api-ref-guides
|
||||
# We need to move api-ref-guides to the proper place:
|
||||
mv publish-docs/api-ref-guides publish-docs/api-ref/
|
||||
# We need to move firstapp-libcloud to the proper place:
|
||||
sphinx-build -E -W -t libcloud firstapp/source firstapp/build-libcloud/html
|
||||
mkdir -p publish-docs/api-ref/firstapp-libcloud/
|
||||
rsync -a firstapp/build-libcloud/html/ publish-docs/api-ref/firstapp-libcloud/
|
||||
# Build and copy RST Guides
|
||||
{toxinidir}/tools/build-all-rst.sh
|
||||
# Delete firstapp draft documents
|
||||
rm -rf publish-docs/draft/
|
||||
|
||||
[testenv:checklang]
|
||||
# openstack-generate-docbook needs xml2po which cannot be installed in
|
||||
@ -95,9 +86,7 @@ commands = doc-tools-check-languages doc-tools-check-languages.conf publish all
|
||||
|
||||
[testenv:docs]
|
||||
commands =
|
||||
# Include only environments that are (partially) written
|
||||
sphinx-build -E -W -t libcloud firstapp/source firstapp/build-libcloud/html
|
||||
sphinx-build -E -W -t fog firstapp/source firstapp/build-fog/html
|
||||
{toxinidir}/tools/build-all-rst.sh
|
||||
|
||||
[testenv:firstapp-libcloud]
|
||||
commands = sphinx-build -E -W -t libcloud firstapp/source firstapp/build-libcloud/html
|
||||
|
Loading…
x
Reference in New Issue
Block a user