Add new jjb macros instead of docu-build-new.sh 37/3437/3
authorRyota MIBU <r-mibu@cq.jp.nec.com>
Thu, 19 Nov 2015 11:38:06 +0000 (20:38 +0900)
committerRyota MIBU <r-mibu@cq.jp.nec.com>
Fri, 20 Nov 2015 12:18:25 +0000 (21:18 +0900)
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 <r-mibu@cq.jp.nec.com>
jjb/opnfv/opnfv-docs.yml
jjb/releng-defaults.yaml
jjb/releng-macros.yaml
utils/docu-build-new.sh [deleted file]

index efb6b5b..ee4b5d7 100644 (file)
                     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'
                     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
index a78a37e..c853474 100644 (file)
@@ -9,4 +9,4 @@
     build-artifact-num-to-keep: 5
 
     ssh-credentials: 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e'
-
+    gerrit-review: 'ssh -p 29418 gerrit.opnfv.org gerrit review'
index 2c694c8..dc59797 100644 (file)
     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 (executable)
index 67a62e3..0000000
+++ /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