From d42302ee26261d4ccd1e5492745cd387d6613a4d Mon Sep 17 00:00:00 2001 From: Ryota MIBU Date: Thu, 19 Nov 2015 20:38:06 +0900 Subject: Add new jjb macros instead of docu-build-new.sh This patch adds new jjb macros equivalent to docu-build-new.sh which is not bash script and includes the both functions of builder and publisher in the single file. Change-Id: Ie078e1d62d56e593e634f7e9633386ba90bf45de Signed-off-by: Ryota MIBU --- jjb/opnfv/opnfv-docs.yml | 13 +++-- jjb/releng-defaults.yaml | 2 +- jjb/releng-macros.yaml | 129 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 139 insertions(+), 5 deletions(-) (limited to 'jjb') 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 -- cgit 1.2.3-korg