X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Freleng-macros.yaml;h=5701ab9bfab1ec0375fe9069580092f9d9e81e39;hb=2d716408a20e3995908308d56e7b654cb5b8ce84;hp=dc59797835a9aa3a52df6d9a3c9f2e26e352d93d;hpb=d42302ee26261d4ccd1e5492745cd387d6613a4d;p=releng.git diff --git a/jjb/releng-macros.yaml b/jjb/releng-macros.yaml index dc5979783..5701ab9bf 100644 --- a/jjb/releng-macros.yaml +++ b/jjb/releng-macros.yaml @@ -7,6 +7,14 @@ name: PROJECT default: '{project}' description: "JJB configured PROJECT parameter to identify an opnfv Gerrit project" + - string: + name: GS_BASE + default: artifacts.opnfv.org/$PROJECT + description: "URL to Google Storage." + - string: + name: GS_BASE_PROXY + default: build.opnfv.org/artifacts/$PROJECT + description: "URL to Google Storage proxy" - parameter: name: gerrit-parameter @@ -48,6 +56,16 @@ timeout: 360 fail: true +- trigger: + name: 'brahmaputra-trigger-daily-disabled' + triggers: + - timed: '' + +- trigger: + name: 'brahmaputra-trigger-daily-enabled' + triggers: + - timed: '0 2 * * *' + - trigger: name: gerrit-trigger-patch-submitted triggers: @@ -144,131 +162,228 @@ builders: - shell: 'mkdir -p $WORKSPACE/target/classes' + +# New Releng macros + - builder: name: build-html-and-pdf-docs-output builders: - shell: | - #!/bin/bash -e - set -o pipefail + #!/bin/bash + set -o errexit + set -o xtrace export PATH=$PATH:/usr/local/bin/ + git clone ssh://gerrit.opnfv.org:29418/releng + GERRIT_COMMENT=gerrit_comment.txt ./releng/utils/docs-build.sh - [[ $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: +- builder: name: upload-under-review-docs-to-opnfv-artifacts - publishers: + builders: - shell: | - #!/bin/bash -e + #!/bin/bash + set -o errexit set -o pipefail + set -o xtrace export PATH=$PATH:/usr/local/bin/ [[ $GERRIT_CHANGE_NUMBER =~ .+ ]] - [[ -d docs/output ]] + [[ -d docs_output ]] || exit 0 echo - echo "##########################" - echo "UPLOADING DOCS UNER REVIEW" - echo "##########################" + echo "###########################" + echo "UPLOADING DOCS UNDER REVIEW" + echo "###########################" echo - gs_path="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER" + gs_base="artifacts.opnfv.org/$PROJECT/review" + gs_path="$gs_base/$GERRIT_CHANGE_NUMBER" + local_path="upload/$GERRIT_CHANGE_NUMBER" - gsutil cp -r docs/output/* "gs://$gs_path" + mkdir -p upload + mv docs_output "$local_path" + gsutil -m cp -r "$local_path" "gs://$gs_base" - gsutil ls "gs://$gs_path" | grep -e 'html$' | while read file - do - gsutil setmeta \ + if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then + gsutil -m setmeta \ -h "Content-Type:text/html" \ -h "Cache-Control:private, max-age=0, no-transform" \ - "$file" - done + "gs://$gs_path"/**.html + fi - 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 + echo "Document link(s):" >> gerrit_comment.txt + find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \ + sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt -- publisher: - name: upload-merged-docs-to-opnfv-artifacts - publishers: +- builder: + name: upload-generated-docs-to-opnfv-artifacts + builders: - shell: | - #!/bin/bash -e + #!/bin/bash + set -o errexit set -o pipefail + set -o xtrace export PATH=$PATH:/usr/local/bin/ - [[ -d docs/output ]] + [[ -d docs_output ]] || exit 0 echo - echo "#####################" - echo "UPLOADING MERGED DOCS" - echo "#####################" + echo "########################" + echo "UPLOADING GENERATED DOCS" + echo "########################" echo - if [[ "{branch}" == "master" ]] ; then - gs_path="artifacts.opnfv.org/{project}/docs" - else - gs_path="artifacts.opnfv.org/{project}/{branch}/docs" - fi + gs_path="$GS_URL/docs" + local_path="upload/docs" - gsutil cp -r docs/output/* "gs://$gs_path" + mkdir -p upload + mv docs_output "$local_path" + gsutil -m cp -r "$local_path" "gs://$GS_URL" - gsutil ls "gs://$gs_path" | grep -e 'html$' | while read file - do - gsutil setmeta \ + if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then + gsutil -m setmeta \ -h "Content-Type:text/html" \ -h "Cache-Control:private, max-age=0, no-transform" \ - "$file" - done + "gs://$gs_path"/**.html + fi - 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 + echo "Document link(s):" >> gerrit_comment.txt + find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \ + sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt -- publisher: +- builder: + name: report-docs-build-result-to-gerrit + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace + export PATH=$PATH:/usr/local/bin/ + if [[ -e gerrit_comment.txt ]] ; then + echo + echo "posting review comment to gerrit..." + echo + cat gerrit_comment.txt + echo + ssh -p 29418 gerrit.opnfv.org \ + "gerrit review -p $GERRIT_PROJECT \ + -m '$(cat gerrit_comment.txt)' \ + $GERRIT_PATCHSET_REVISION" + fi + +- builder: name: remove-old-docs-from-opnfv-artifacts - publishers: + builders: - shell: | - #!/bin/bash -e + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace export PATH=$PATH:/usr/local/bin/ [[ $GERRIT_CHANGE_NUMBER =~ .+ ]] + gs_path="artifacts.opnfv.org/$PROJECT/review/$GERRIT_CHANGE_NUMBER" + + if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then + echo + echo "Deleting Out-of-dated Documents..." + gsutil -m rm -r "gs://$gs_path" + fi 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" + gsutil -m rm -r "gs://$gs_path" + fi + +- builder: + name: build-and-upload-artifacts-json-api + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + export PATH=$PATH:/usr/local/bin/ + + virtualenv -p python2.7 $WORKSPACE/releng_artifacts + source $WORKSPACE/releng_artifacts/bin/activate + + # install python packages + pip install google-api-python-client + + # generate and upload index file + echo "Generating Artifacts API ..." + python $WORKSPACE/utils/opnfv-artifacts.py > index.json + gsutil cp index.json gs://artifacts.opnfv.org/index.json + + deactivate + +- builder: + name: lint-python-code + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace + export PATH=$PATH:/usr/local/bin/ + + virtualenv -p python2.7 $WORKSPACE/releng_flake8 + source $WORKSPACE/releng_flake8/bin/activate + + # install python packages + pip install flake8 + + # generate and upload lint log + echo "Running flake8 code on $PROJECT ..." + + FLAKE_COUNT="$(find . \ + -path './releng_flake8' -prune -o \ + -type f -name "*.py" -print | \ + xargs flake8 --exit-zero -qq --count 2>&1)" + echo -e "Flake8 Violations: $FLAKE_COUNT\n---" >> lint.log + # At some point this need to handle the case of finding no + # violations. + find . \ + -path './releng_flake8' -prune -o \ + -type f -name "*.py" -print | \ + xargs flake8 --exit-zero --first >> lint.log + + deactivate + +- builder: + name: report-lint-result-to-gerrit + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace + export PATH=$PATH:/usr/local/bin/ + if [[ -e lint.log ]] ; then + sed -r -i '3,$s/^/ /g' lint.log + echo -e "\nposting linting report to gerrit...\n" + cat lint.log + echo + ssh -p 29418 gerrit.opnfv.org \ + "gerrit review -p $GERRIT_PROJECT \ + -m \"$(cat lint.log)\" \ + $GERRIT_PATCHSET_REVISION" fi + +- builder: + name: upload-review-docs + builders: + - build-html-and-pdf-docs-output + - upload-under-review-docs-to-opnfv-artifacts + - report-docs-build-result-to-gerrit + +- builder: + name: upload-merged-docs + builders: + - build-html-and-pdf-docs-output + - upload-generated-docs-to-opnfv-artifacts + - report-docs-build-result-to-gerrit + - remove-old-docs-from-opnfv-artifacts