[[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
- git_sha1="$(git rev-parse HEAD)"
-
- find docs/ -type f -iname '*.rst' -print0 | while read file
- do
- sed -i "s/_sha1_/$git_sha1/g" "$file"
- done
+ _get_title_script="
+ import os
+ from docutils import core, nodes
+ with open('index.rst', 'r') as file:
+ data = file.read()
+ doctree = core.publish_doctree(data,
+ settings_overrides={'report_level': 5,
+ 'halt_level': 5})
+ if isinstance(doctree[0], nodes.title):
+ title = doctree[0]
+ else:
+ for c in doctree.children:
+ if isinstance(c, nodes.section):
+ title = c[0]
+ break
+ print title.astext()"
+ _git_sha1="$(git rev-parse HEAD)"
+
+ git clone ssh://gerrit.opnfv.org:29418/releng
+ [[ -d releng ]]
find docs/ -name 'index.rst' -printf '%h\n' | while read dir
do
echo "#################${dir//?/#}"
echo
- mkdir -p "$_output"
+ sed -i "s/_sha1_/$_git_sha1/g" "$dir/index.rst"
- sphinx-build -b html -E -c docs/etc "$dir" "$_output"
+ if [[ ! -f "$dir/conf.py" ]] ; then
+ cp releng/docs/etc/conf.py "$dir/conf.py"
+ _title=$(cd $dir; python -c "$_get_title_script")
+ echo "latex_documents = [('index', '$_name.tex', \"$_title\", 'OPNFV', 'manual'),]" >> "$dir/conf.py"
+ fi
+ cp -f releng/docs/etc/opnfv-logo.png "$dir/opnfv-logo.png"
- sphinx-build -b latex -E -c docs/etc -D project=$_name "$dir" "$_build"
- make -C "$_build" LATEXOPTS='--interaction=nonstopmode' all-pdf
- mv "$_build"/*.pdf "$_output"
+ mkdir -p "$_output"
+
+ sphinx-build -b html -E "$dir" "$_output"
+
+ # Note: PDF creation may fail in project doc builds.
+ # We allow this test to be marked as succeeded with
+ # failure in PDF creation, but leave message to fix it.
+ # Any failure has to be fixed before B release.
+ {
+ sphinx-build -b latex -E "$dir" "$_build"
+ make -C "$_build" LATEXOPTS='--interaction=nonstopmode' all-pdf
+ mv "$_build/$_name.pdf" "$_output"
+ } || {
+ _msg="Error: PDF creation for $dir has failed, please fix source rst file(s)."
+ echo
+ echo "$_msg"
+ echo
+ echo "$_msg" >> gerrit_comment.txt
+ }
done
-#TODO(r-mibu): change this to publisher
- builder:
name: upload-under-review-docs-to-opnfv-artifacts
builders:
[[ -d docs/output ]]
echo
- echo "##########################"
- echo "UPLOADING DOCS UNER REVIEW"
- echo "##########################"
+ echo "###########################"
+ echo "UPLOADING DOCS UNDER REVIEW"
+ echo "###########################"
echo
- gs_path="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER"
+ gs_base="artifacts.opnfv.org/review"
+ gs_path="$gs_base/$GERRIT_CHANGE_NUMBER"
+ local_path="docs/$GERRIT_CHANGE_NUMBER"
- gsutil -m cp -r docs/output/* "gs://$gs_path"
+ mv docs/output "$local_path"
+ gsutil -m cp -r "$local_path" "gs://$gs_base"
if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then
gsutil -m setmeta \
"gs://$gs_path"/**.html
fi
- gerrit_comment="Document link(s):
- $(gsutil ls "gs://$gs_path" | grep -e 'index.html$' -e 'pdf$' | sed 's/^gs/http/')"
- echo
- echo "$gerrit_comment"
- echo
- {gerrit-review} -p {project} -m "$gerrit_comment" $GERRIT_PATCHSET_REVISION
+ echo "Document link(s):" >> gerrit_comment.txt
+ find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \
+ sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt
-#TODO(r-mibu): change this to publisher
- builder:
name: upload-merged-docs-to-opnfv-artifacts
builders:
echo "#####################"
echo
- if [[ "{branch}" == "master" ]] ; then
- gs_path="artifacts.opnfv.org/{project}/docs"
+ if [[ "$GERRIT_BRANCH" == "master" ]] ; then
+ gs_base="artifacts.opnfv.org/$GERRIT_PROJECT"
else
- gs_path="artifacts.opnfv.org/{project}/{branch}/docs"
+ gs_base="artifacts.opnfv.org/$GERRIT_PROJECT/$GERRIT_BRANCH"
fi
+ gs_path="$gs_base/docs"
+ local_path="docs/docs"
- gsutil -m cp -r docs/output/* "gs://$gs_path"
+ mv docs/output "$local_path"
+ gsutil -m cp -r "$local_path" "gs://$gs_base"
if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then
gsutil -m setmeta \
"gs://$gs_path"/**.html
fi
- gerrit_comment="Document link(s):
- $(gsutil ls "gs://$gs_path" | grep -e 'index.html$' -e 'pdf$' | sed 's/^gs/http/')"
- echo
- echo "$gerrit_comment"
- echo
- {gerrit-review} -p {project} -m "$gerrit_comment" $GERRIT_PATCHSET_REVISION
+ echo "Document link(s):" >> gerrit_comment.txt
+ find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \
+ sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt
+
+- builder:
+ name: report-docs-build-result-to-gerrit
+ builders:
+ - shell: |
+ #!/bin/bash -e
+ export PATH=$PATH:/usr/local/bin/
+ if [[ -e gerrit_comment.txt ]] ; then
+ echo
+ echo "posting review comment to gerrit..."
+ echo
+ cat gerrit_comment.txt
+ echo
+ ssh -p 29418 gerrit.opnfv.org \
+ "gerrit review -p $GERRIT_PROJECT \
+ -m '$(cat gerrit_comment.txt)' \
+ $GERRIT_PATCHSET_REVISION"
+ fi
-#TODO(r-mibu): change this to publisher
- builder:
name: remove-old-docs-from-opnfv-artifacts
builders:
if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then
echo
echo "Deleting Out-of-dated Documents..."
- gsutil -m rm -r "gs://$gs_path_review"
+ gsutil -m rm -r "gs://$gs_path"
fi
+
+- builder:
+ name: upload-review-docs
+ builders:
+ - build-html-and-pdf-docs-output
+ - upload-under-review-docs-to-opnfv-artifacts
+ - report-docs-build-result-to-gerrit
+
+- builder:
+ name: upload-merged-docs
+ builders:
+ - build-html-and-pdf-docs-output
+ - upload-merged-docs-to-opnfv-artifacts
+ - report-docs-build-result-to-gerrit
+ - remove-old-docs-from-opnfv-artifacts