X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Freleng-macros.yaml;h=3afe8482a143c1cd38845e8424206b67778df51e;hb=f44600818112beb95afe7148a250d49cbb082a52;hp=22d56224cb2ef10f2b3852039364eb1df2ae54bb;hpb=6c1b77bea51e28810e53a1f2eea5da9135ca7842;p=releng.git diff --git a/jjb/releng-macros.yaml b/jjb/releng-macros.yaml index 22d56224c..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: @@ -279,5 +325,20 @@ 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