diff options
-rw-r--r-- | jjb/opnfv/opnfv-docs.yml | 13 | ||||
-rw-r--r-- | jjb/releng-defaults.yaml | 2 | ||||
-rw-r--r-- | jjb/releng-macros.yaml | 129 | ||||
-rwxr-xr-x | utils/docu-build-new.sh | 114 |
4 files changed, 139 insertions, 119 deletions
diff --git a/jjb/opnfv/opnfv-docs.yml b/jjb/opnfv/opnfv-docs.yml index efb6b5bf1..ee4b5d75c 100644 --- a/jjb/opnfv/opnfv-docs.yml +++ b/jjb/opnfv/opnfv-docs.yml @@ -74,8 +74,10 @@ pattern: 'docs/**' builders: - - shell: - !include-raw ../../utils/docu-build-new.sh + - build-html-and-pdf-docs-output + + publisher: + - upload-under-review-docs-to-opnfv-artifacts - job-template: name: 'opnfv-docs-merge' @@ -123,5 +125,8 @@ pattern: 'docs/**' builders: - - shell: - !include-raw ../../utils/docu-build-new.sh + - build-html-and-pdf-docs-output + + publisher: + - upload-merged-docs-to-opnfv-artifacts + - remove-old-docs-from-opnfv-artifacts diff --git a/jjb/releng-defaults.yaml b/jjb/releng-defaults.yaml index a78a37e91..c85347457 100644 --- a/jjb/releng-defaults.yaml +++ b/jjb/releng-defaults.yaml @@ -9,4 +9,4 @@ build-artifact-num-to-keep: 5 ssh-credentials: 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e' - + gerrit-review: 'ssh -p 29418 gerrit.opnfv.org gerrit review' diff --git a/jjb/releng-macros.yaml b/jjb/releng-macros.yaml index 2c694c847..dc5979783 100644 --- a/jjb/releng-macros.yaml +++ b/jjb/releng-macros.yaml @@ -143,3 +143,132 @@ name: jacoco-nojava-workaround builders: - shell: 'mkdir -p $WORKSPACE/target/classes' + +- builder: + name: build-html-and-pdf-docs-output + builders: + - shell: | + #!/bin/bash -e + set -o pipefail + export PATH=$PATH:/usr/local/bin/ + + [[ $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 + + find docs/ -name 'index.rst' -printf '%h\n' | while read dir + do + _name="${{dir##*/}}" + _build="$dir/build" + _output="docs/output/$_name" + + echo + echo "#################${{dir//?/#}}" + echo "Building DOCS in ${{dir}}" + echo "#################${{dir//?/#}}" + echo + + mkdir -p "$_output" + + sphinx-build -b html -E -c docs/etc "$dir" "$_output" + + sphinx-build -b latex -E -c docs/etc "$dir" "$_build" + make -C "$_build" LATEXOPTS='--interaction=nonstopmode' all-pdf + mv "$_build"/*.pdf "$_output" + +- publisher: + name: upload-under-review-docs-to-opnfv-artifacts + publishers: + - shell: | + #!/bin/bash -e + set -o pipefail + export PATH=$PATH:/usr/local/bin/ + + [[ $GERRIT_CHANGE_NUMBER =~ .+ ]] + [[ -d docs/output ]] + + echo + echo "##########################" + echo "UPLOADING DOCS UNER REVIEW" + echo "##########################" + echo + + gs_path="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER" + + gsutil cp -r docs/output/* "gs://$gs_path" + + gsutil ls "gs://$gs_path" | grep -e 'html$' | while read file + do + gsutil setmeta \ + -h "Content-Type:text/html" \ + -h "Cache-Control:private, max-age=0, no-transform" \ + "$file" + done + + 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 + +- publisher: + name: upload-merged-docs-to-opnfv-artifacts + publishers: + - shell: | + #!/bin/bash -e + set -o pipefail + export PATH=$PATH:/usr/local/bin/ + + [[ -d docs/output ]] + + echo + echo "#####################" + echo "UPLOADING MERGED DOCS" + echo "#####################" + echo + + if [[ "{branch}" == "master" ]] ; then + gs_path="artifacts.opnfv.org/{project}/docs" + else + gs_path="artifacts.opnfv.org/{project}/{branch}/docs" + fi + + gsutil cp -r docs/output/* "gs://$gs_path" + + gsutil ls "gs://$gs_path" | grep -e 'html$' | while read file + do + gsutil setmeta \ + -h "Content-Type:text/html" \ + -h "Cache-Control:private, max-age=0, no-transform" \ + "$file" + done + + 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 + +- publisher: + name: remove-old-docs-from-opnfv-artifacts + publishers: + - shell: | + #!/bin/bash -e + export PATH=$PATH:/usr/local/bin/ + + [[ $GERRIT_CHANGE_NUMBER =~ .+ ]] + + gs_path="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER" + + 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" + fi diff --git a/utils/docu-build-new.sh b/utils/docu-build-new.sh deleted file mode 100755 index 67a62e381..000000000 --- a/utils/docu-build-new.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/bash -set -e -set -o pipefail - -export PATH=$PATH:/usr/local/bin/ -git_sha1="$(git rev-parse HEAD)" - -clean() {{ -if [[ -d docs/output ]]; then -rm -rf docs/output -echo "cleaning up output directory" -fi -}} - -trap clean EXIT TERM INT SIGTERM SIGHUP - -#set git_sha1 -files=() -while read -r -d ''; do - files+=("$REPLY") -done < <(find docs/ -type f -iname '*.rst' -print0) -for file in "${{files[@]}}"; do - sed -i "s/_sha1_/$git_sha1/g" $file -done - -directories=() -while read -d $'\n'; do - directories+=("$REPLY") -done < <(find docs/ -name 'index.rst' -printf '%h\n' | sort -u ) - -for dir in "${{directories[@]}}"; do - _name="${{dir##*/}}" - _build="${{dir}}/build" - _output="docs/output/${{_name}}" - echo - echo "#################${{_name//?/#}}" - echo "Building DOCS in ${{_name}}" - echo "#################${{_name//?/#}}" - echo - - mkdir -p "${{_output}}" - - sphinx-build -b html -E -c docs/etc "${{dir}}" "${{_output}}" - - sphinx-build -b latex -E -c docs/etc "${{dir}}" "${{_build}}" - make -C "${{_build}}" LATEXOPTS='--interaction=nonstopmode' all-pdf - mv "${{_build}}"/*.pdf "${{_output}}" - -done - -# NOTE: make sure source parameters for GS paths are not empty. -[[ $GERRIT_CHANGE_NUMBER =~ .+ ]] -[[ $GERRIT_PROJECT =~ .+ ]] -[[ $GERRIT_BRANCH =~ .+ ]] - -gs_path_review="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER" - -if [[ $GERRIT_BRANCH = "master" ]] ; then - gs_path_branch="artifacts.opnfv.org/$GERRIT_PROJECT" -else - gs_path_branch="artifacts.opnfv.org/$GERRIT_PROJECT/${{GERRIT_BRANCH##*/}}" -fi - -for dir in "${{directories[@]}}"; do - echo - echo "#############################" - echo "UPLOADING DOCS in ${{dir##*/}}" - echo "#############################" - echo - - - if [[ $JOB_NAME =~ "verify" ]] ; then - - #upload artifacts for verify job - gsutil cp -r docs/output/"${{dir##*/}}/" "gs://$gs_path_review/" - - # post link to gerrit as comment - gerrit_comment="$(echo '"Document is available at 'http://$gs_path_review/"${{dir##*/}}"/index.html' for review"')" - echo "$gerrit_comment" - ssh -p 29418 gerrit.opnfv.org gerrit review -p $GERRIT_PROJECT -m \ - "$gerrit_comment" $GERRIT_PATCHSET_REVISION - - #set cache to 0 - for x in $(gsutil ls gs://$gs_path_review/"${{dir##*/}}" | grep html); - do - gsutil setmeta -h "Content-Type:text/html" \ - -h "Cache-Control:private, max-age=0, no-transform" \ - "$x" - done - - else - - #upload artifacts for merge job - gsutil cp -r docs/output/"${{dir##*/}}" "gs://$gs_path_branch/docs/" - echo "Latest document is available at http://$gs_path_branch/docs/"${{dir##*/}}"/index.html" - - #set cache to 0 - for x in $(gsutil ls gs://$gs_path_branch/"${{dir}}" | grep html); - do - gsutil setmeta -h "Content-Type:text/html" \ - -h "Cache-Control:private, max-age=0, no-transform" \ - "$x" - done - - #Clean up review when merging - if gsutil ls "gs://$gs_path_review" > /dev/null 2>&1 ; then - echo - echo "Deleting Out-of-dated Documents..." - gsutil rm -r "gs://$gs_path_review" - fi - - fi - -done |