From c2ed9c64db2ca84ea599b4c5231d24bbf06547ed Mon Sep 17 00:00:00 2001 From: Aric Gardner Date: Thu, 10 Sep 2015 11:08:28 -0400 Subject: Add document generation job for dovetail project Moved docu-build-new.sh to utils. hoping I can include it from here to avoid duplication Change-Id: I80359036c954e70268b1a3e63c9b0855551be710 Signed-off-by: Aric Gardner --- jjb/dovetail/dovetail-docs.yml | 131 +++++++++++++++++++++++++++++++++++++++++ jjb/releng/docu-build-new.sh | 109 ---------------------------------- jjb/releng/releng.yml | 4 +- utils/docu-build-new.sh | 109 ++++++++++++++++++++++++++++++++++ 4 files changed, 242 insertions(+), 111 deletions(-) create mode 100644 jjb/dovetail/dovetail-docs.yml delete mode 100755 jjb/releng/docu-build-new.sh create mode 100755 utils/docu-build-new.sh diff --git a/jjb/dovetail/dovetail-docs.yml b/jjb/dovetail/dovetail-docs.yml new file mode 100644 index 000000000..d1a6da89d --- /dev/null +++ b/jjb/dovetail/dovetail-docs.yml @@ -0,0 +1,131 @@ +######################## +# Job configuration for dovetail-docs +######################## +- project: + + name: dovetail-docs + + project: 'dovetail' + + jobs: + - 'dovetail-docs-verify' + - 'dovetail-docs-merge' + + # stream: branch with - in place of / (eg. stable-arno) + # branch: branch (eg. stable/arno) + stream: + - master: + branch: 'master' + +######################## +# job templates +######################## + +- job-template: + name: 'dovetail-docs-verify' + + node: master + + project-type: freestyle + + logrotate: + daysToKeep: 30 + numToKeep: 10 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: 'master' + + scm: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + wrappers: + - ssh-agent-credentials: + user: '{ssh-credentials}' + + triggers: + - gerrit: + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/master' + file-paths: + - compare-type: ANT + pattern: 'docs/**' + + builders: + - shell: + !include-raw ../../utils/docu-build-new.sh + + +- job-template: + name: 'dovetail-docs-merge' + + # builder-merge job to run JJB update + # + # This job's purpose is to update all the JJB + + node: master + + project-type: freestyle + + logrotate: + daysToKeep: 30 + numToKeep: 40 + artifactDaysToKeep: -1 + artifactNumToKeep: 5 + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: 'master' + + scm: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + choosing-strategy: 'default' + + wrappers: + - ssh-agent-credentials: + user: '{ssh-credentials}' + + triggers: + - gerrit: + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/master' + file-paths: + - compare-type: ANT + pattern: 'docs/**' + + builders: + - shell: + !include-raw ../../utils/docu-build-new.sh diff --git a/jjb/releng/docu-build-new.sh b/jjb/releng/docu-build-new.sh deleted file mode 100755 index 00d046479..000000000 --- a/jjb/releng/docu-build-new.sh +++ /dev/null @@ -1,109 +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 - echo - echo "#############################" - echo "Building DOCS in ${{dir##*/}}" - echo "#############################" - echo - - if [[ ! -d docs/output/"${{dir##*/}}/" ]]; then - mkdir -p docs/output/"${{dir##*/}}/" - fi - - sphinx-build -b html -E -c docs/etc/ ""$dir"/" docs/output/"${{dir##*/}}/" - -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 diff --git a/jjb/releng/releng.yml b/jjb/releng/releng.yml index 87a73c490..6e9515052 100644 --- a/jjb/releng/releng.yml +++ b/jjb/releng/releng.yml @@ -79,7 +79,7 @@ builders: - shell: - !include-raw docu-build-new.sh + !include-raw ../../utils/docu-build-new.sh - job-template: @@ -138,4 +138,4 @@ builders: - shell: - !include-raw docu-build-new.sh + !include-raw ../../utils/docu-build-new.sh diff --git a/utils/docu-build-new.sh b/utils/docu-build-new.sh new file mode 100755 index 000000000..00d046479 --- /dev/null +++ b/utils/docu-build-new.sh @@ -0,0 +1,109 @@ +#!/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 + echo + echo "#############################" + echo "Building DOCS in ${{dir##*/}}" + echo "#############################" + echo + + if [[ ! -d docs/output/"${{dir##*/}}/" ]]; then + mkdir -p docs/output/"${{dir##*/}}/" + fi + + sphinx-build -b html -E -c docs/etc/ ""$dir"/" docs/output/"${{dir##*/}}/" + +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 -- cgit 1.2.3-korg