Documentation build scripts for Doctor project 01/501/1
authorCarlos Goncalves <carlos.goncalves@neclab.eu>
Mon, 11 May 2015 12:38:42 +0000 (14:38 +0200)
committerCarlos Goncalves <carlos.goncalves@neclab.eu>
Mon, 11 May 2015 12:38:42 +0000 (14:38 +0200)
JIRA: DOCS-29

Signed-off-by: Carlos Goncalves <carlos.goncalves@neclab.eu>
jjb/doctor/doctor.yml
jjb/doctor/docu-build.sh [new file with mode: 0644]
jjb/doctor/docu-verify.sh [new file with mode: 0644]

index 54070aa..99bf3cd 100644 (file)
@@ -18,6 +18,8 @@
 - job-template:
     name: doctor-test
 
+    node: master
+
     project-type: freestyle
 
     logrotate:
@@ -33,6 +35,8 @@
 - job-template:
     name: 'doctor-daily-{stream}'
 
+    node: master
+
     # Job template for daily builders
     #
     # Required Variables:
@@ -74,9 +78,7 @@
 
     builders:
         - shell: |
-            pwd
-            find .
-            echo "Hello world from doctor {somevar} daily"
+            !include-raw docu-build.sh
 
     postbuilders:
         - test-macro
@@ -84,6 +86,8 @@
 - job-template:
     name: 'doctor-verify'
 
+    node: master
+
     project-type: freestyle
 
     logrotate:
 
     builders:
         - shell: |
-            pwd
-            find .
-            echo "verify logic goes here"
+            !include-raw docu-verify.sh
 
 - job-template:
     name: 'doctor-merge'
 
+    node: master
+
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
     builders:
         - shell: |
-            pwd
-            find .
-            echo "merge logic goes here"
+            !include-raw docu-build.sh
 
 
 
diff --git a/jjb/doctor/docu-build.sh b/jjb/doctor/docu-build.sh
new file mode 100644 (file)
index 0000000..c8f1596
--- /dev/null
@@ -0,0 +1,63 @@
+#!/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)"
+
+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"/"$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"/"$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"/"$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"/"$gs_cp_folder".pdf
+       cat gsoutput.txt
+       rm -f gsoutput.txt
+
+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"/"$img"
+        gsutil setmeta -h "Content-Type:image/jpeg" \
+                        -h "Cache-Control:private, max-age=0, no-transform" \
+                        gs://artifacts.opnfv.org/"$project"/"$img"
+        cat gsoutput.txt
+        rm -f gsoutput.txt
+
+done
diff --git a/jjb/doctor/docu-verify.sh b/jjb/doctor/docu-verify.sh
new file mode 100644 (file)
index 0000000..f337a7f
--- /dev/null
@@ -0,0 +1,33 @@
+#!/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)"
+
+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 > $file_cut".html"
+
+       echo "rst2pdf $file"
+       rst2pdf $file -o $file_cut".pdf"
+
+done
+