X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=jjb%2Freleng-macros.yaml;h=3afe8482a143c1cd38845e8424206b67778df51e;hb=19852f3337812c944906b8427cd81fd3480fb859;hp=ece836717d8a0fb7a52f4e572b9284479dc19227;hpb=7292ffc71c963b26659f3c67ce24f87054c1efa7;p=releng.git diff --git a/jjb/releng-macros.yaml b/jjb/releng-macros.yaml index ece836717..3afe8482a 100644 --- a/jjb/releng-macros.yaml +++ b/jjb/releng-macros.yaml @@ -144,6 +144,9 @@ builders: - shell: 'mkdir -p $WORKSPACE/target/classes' + +# New Releng macros + - builder: name: build-html-and-pdf-docs-output builders: @@ -154,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 @@ -173,18 +190,39 @@ 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 "$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 -- publisher: +- builder: name: upload-under-review-docs-to-opnfv-artifacts - publishers: + builders: - shell: | #!/bin/bash -e set -o pipefail @@ -194,33 +232,32 @@ [[ -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 cp -r docs/output/* "gs://$gs_path" + mv docs/output "$local_path" + gsutil -m cp -r "$local_path" "gs://$gs_base" - gsutil ls "gs://$gs_path" | grep -e 'html$' | while read file - do - gsutil setmeta \ + if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then + gsutil -m setmeta \ -h "Content-Type:text/html" \ -h "Cache-Control:private, max-age=0, no-transform" \ - "$file" - done + "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 -- publisher: +- builder: name: upload-merged-docs-to-opnfv-artifacts - publishers: + builders: - shell: | #!/bin/bash -e set -o pipefail @@ -234,32 +271,49 @@ 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 cp -r docs/output/* "gs://$gs_path" + mv docs/output "$local_path" + gsutil -m cp -r "$local_path" "gs://$gs_base" - gsutil ls "gs://$gs_path" | grep -e 'html$' | while read file - do - gsutil setmeta \ + if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then + gsutil -m setmeta \ -h "Content-Type:text/html" \ -h "Cache-Control:private, max-age=0, no-transform" \ - "$file" - done + "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 -- publisher: +- 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 + +- builder: name: remove-old-docs-from-opnfv-artifacts - publishers: + builders: - shell: | #!/bin/bash -e export PATH=$PATH:/usr/local/bin/ @@ -271,5 +325,20 @@ if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then echo echo "Deleting Out-of-dated Documents..." - gsutil 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