summaryrefslogtreecommitdiffstats
path: root/jjb/releng-macros.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'jjb/releng-macros.yaml')
-rw-r--r--jjb/releng-macros.yaml131
1 files changed, 96 insertions, 35 deletions
diff --git a/jjb/releng-macros.yaml b/jjb/releng-macros.yaml
index 3be93c889..3afe8482a 100644
--- a/jjb/releng-macros.yaml
+++ b/jjb/releng-macros.yaml
@@ -157,12 +157,26 @@
[[ $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
@@ -176,16 +190,36 @@
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:
@@ -203,9 +237,12 @@
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 \
@@ -214,16 +251,10 @@
"gs://$gs_path"/**.html
fi
- files=$(find docs/output | grep -e 'index.html$' -e 'pdf$' | \
- sed -e "s|^docs/output| http://$gs_path|")
- gerrit_comment="Document link(s):
- $files"
- echo
- echo "$gerrit_comment"
- echo
- ssh -p 29418 gerrit.opnfv.org "gerrit review -p $GERRIT_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:
@@ -241,12 +272,15 @@
echo
if [[ "$GERRIT_BRANCH" == "master" ]] ; then
- gs_path="artifacts.opnfv.org/$GERRIT_PROJECT/docs"
+ gs_base="artifacts.opnfv.org/$GERRIT_PROJECT"
else
- gs_path="artifacts.opnfv.org/$GERRIT_PROJECT/$GERRIT_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 \
@@ -255,16 +289,28 @@
"gs://$gs_path"/**.html
fi
- files=$(find docs/output | grep -e 'index.html$' -e 'pdf$' | \
- sed -e "s|^docs/output| http://$gs_path|")
- gerrit_comment="Document link(s):
- $files"
- echo
- echo "$gerrit_comment"
- echo
- ssh -p 29418 gerrit.opnfv.org "gerrit review -p $GERRIT_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:
@@ -281,3 +327,18 @@
echo "Deleting Out-of-dated Documents..."
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