create docu build script and add it in jjb for availability project 62/1062/1
authorMatthewLi <matthew.lijun@huawei.com>
Fri, 24 Jul 2015 09:25:26 +0000 (09:25 +0000)
committerMatthewLi <matthew.lijun@huawei.com>
Fri, 24 Jul 2015 09:27:27 +0000 (09:27 +0000)
JIRA: OCTO-110

Change-Id: Ibf03caed5a1e679c02a96eff7d8d145f508a3800
Signed-off-by: MatthewLi <matthew.lijun@huawei.com>
jjb/availability/availability.yml
jjb/availability/docu-build.sh [new file with mode: 0644]

index a0346cf..73c9050 100644 (file)
@@ -6,8 +6,8 @@
         - 'availability-merge'
         - 'availability-verify'
 
-    # stream:    branch with - in place of / (eg. stable-helium)
-    # branch:    branch (eg. stable/helium)
+    # stream:    branch with - in place of / (eg. stable-arno)
+    # branch:    branch (eg. stable/arno)
     stream:
         - master:
             branch: 'master'
@@ -38,6 +38,7 @@
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
+    node: master
 
     project-type: freestyle
     varsetabove: '{somevar}'
         - test-macro
 
     builders:
-        - shell: |
-            pwd
-            find .
-            echo "Hello world from availability {somevar} daily"
+        - shell:
+             !include-raw docu-build.sh
 
     postbuilders:
         - test-macro
@@ -80,6 +79,8 @@
 - job-template:
     name: 'availability-verify'
 
+    node: master
+
     project-type: freestyle
 
     logrotate:
                     branch-pattern: '**/master'
 
     builders:
-        - shell: |
-            pwd
-            find .
-            echo "verify logic goes here"
+        - shell:
+             !include-raw docu-build.sh
 
 - job-template:
     name: 'availability-merge'
     #
     # This job's purpose is to update all the JJB
 
+    node: master
+
     project-type: freestyle
 
     logrotate:
                       branch-pattern: '**/master'
 
     builders:
-        - shell: |
-            pwd
-            find .
-            echo "merge logic goes here"
+        - shell:
+             !include-raw docu-build.sh
 
 
 
diff --git a/jjb/availability/docu-build.sh b/jjb/availability/docu-build.sh
new file mode 100644 (file)
index 0000000..057cc97
--- /dev/null
@@ -0,0 +1,80 @@
+#!/bin/bash
+set -e
+set -o pipefail
+
+project="$(git remote -v | head -n1 | awk '{{print $2}}' | sed -e 's,.*:\(.*/\)\?,,' -e 's/\.git$//')"
+export PATH=$PATH:/usr/local/bin/
+
+git_sha1="$(git rev-parse HEAD)"
+docu_build_date="$(date)"
+
+if [[ $JOB_NAME =~ "verify" ]] ; then
+      patchset="/$GERRIT_CHANGE_NUMBER"
+fi
+
+files=()
+while read -r -d ''; do
+       files+=("$REPLY")
+done < <(find * -type f -iname '*.rst' -print0)
+
+for file in "${{files[@]}}"; do
+
+       file_cut="${{file%.*}}"
+       gs_cp_folder="${{file_cut}}"
+
+       # sed part
+       sed -i "s/_sha1_/$git_sha1/g" $file
+       sed -i "s/_date_/$docu_build_date/g" $file
+
+       # rst2html part
+       echo "rst2html $file"
+       rst2html $file | gsutil cp -L gsoutput.txt - \
+       gs://artifacts.opnfv.org/"$project""$patchset"/"$gs_cp_folder".html
+       gsutil setmeta -h "Content-Type:text/html" \
+                       -h "Cache-Control:private, max-age=0, no-transform" \
+                       gs://artifacts.opnfv.org/"$project""$patchset"/"$gs_cp_folder".html
+       cat gsoutput.txt
+       rm -f gsoutput.txt
+
+       echo "rst2pdf $file"
+       rst2pdf $file -o - | gsutil cp -L gsoutput.txt - \
+       gs://artifacts.opnfv.org/"$project""$patchset"/"$gs_cp_folder".pdf
+       gsutil setmeta -h "Content-Type:application/pdf" \
+                       -h "Cache-Control:private, max-age=0, no-transform" \
+                       gs://artifacts.opnfv.org/"$project""$patchset"/"$gs_cp_folder".pdf
+       cat gsoutput.txt
+       rm -f gsoutput.txt
+
+  links+="http://artifacts.opnfv.org/"$project""$patchset"/"$gs_cp_folder".html \n"
+  links+="http://artifacts.opnfv.org/"$project""$patchset"/"$gs_cp_folder".pdf \n"
+
+done
+
+images=()
+while read -r -d ''; do
+        images+=("$REPLY")
+done < <(find * -type f \( -iname \*.jpg -o -iname \*.png \) -print0)
+
+for img in "${{images[@]}}"; do
+
+       # uploading found images
+       echo "uploading $img"
+        cat "$img" | gsutil cp -L gsoutput.txt - \
+        gs://artifacts.opnfv.org/"$project""$patchset"/"$img"
+        gsutil setmeta -h "Content-Type:image/jpeg" \
+                        -h "Cache-Control:private, max-age=0, no-transform" \
+                        gs://artifacts.opnfv.org/"$project""$patchset"/"$img"
+        cat gsoutput.txt
+        rm -f gsoutput.txt
+
+done
+
+if [[ $GERRIT_EVENT_TYPE = "change-merged" ]] ; then
+    patchset="/$GERRIT_CHANGE_NUMBER"
+    if [ ! -z "$patchset" ]; then
+      gsutil rm gs://artifacts.opnfv.org/"$project""$patchset"/** || true
+    fi
+fi
+
+echo -e "$links"
+