X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Freleng-macros.yaml;h=7fb4d653d4a140cf6f4895178dc809f6b01f32cc;hb=9ec8b18aa784ab88a864807cbde0b90a8ec767d0;hp=3afe8482a143c1cd38845e8424206b67778df51e;hpb=131b9e34813fb4d6bc1c8ff678a8fc63fb08ee8f;p=releng.git diff --git a/jjb/releng-macros.yaml b/jjb/releng-macros.yaml index 3afe8482a..7fb4d653d 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: @@ -151,85 +169,25 @@ 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/ - - [[ $GERRIT_CHANGE_NUMBER =~ .+ ]] - - _get_title_script=" - import os - from docutils import core, nodes - with open('index.rst', 'r') as file: - data = file.read() - doctree = core.publish_doctree(data, - settings_overrides={'report_level': 5, - 'halt_level': 5}) - if isinstance(doctree[0], nodes.title): - title = doctree[0] - else: - for c in doctree.children: - if isinstance(c, nodes.section): - title = c[0] - break - print title.astext()" - _git_sha1="$(git rev-parse HEAD)" - git clone ssh://gerrit.opnfv.org:29418/releng - [[ -d releng ]] - - 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 - - sed -i "s/_sha1_/$_git_sha1/g" "$dir/index.rst" - - if [[ ! -f "$dir/conf.py" ]] ; then - cp releng/docs/etc/conf.py "$dir/conf.py" - _title=$(cd $dir; python -c "$_get_title_script") - echo "latex_documents = [('index', '$_name.tex', \"$_title\", 'OPNFV', 'manual'),]" >> "$dir/conf.py" - fi - cp -f releng/docs/etc/opnfv-logo.png "$dir/opnfv-logo.png" - - mkdir -p "$_output" - - sphinx-build -b html -E "$dir" "$_output" - - # Note: PDF creation may fail in project doc builds. - # We allow this test to be marked as succeeded with - # failure in PDF creation, but leave message to fix it. - # Any failure has to be fixed before B release. - { - sphinx-build -b latex -E "$dir" "$_build" - make -C "$_build" LATEXOPTS='--interaction=nonstopmode' all-pdf - mv "$_build/$_name.pdf" "$_output" - } || { - _msg="Error: PDF creation for $dir has failed, please fix source rst file(s)." - echo - echo "$_msg" - echo - echo "$_msg" >> gerrit_comment.txt - } - done + GERRIT_COMMENT=gerrit_comment.txt ./releng/utils/docs-build.sh - builder: name: upload-under-review-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/ [[ $GERRIT_CHANGE_NUMBER =~ .+ ]] - [[ -d docs/output ]] + [[ -d docs_output ]] || exit 0 echo echo "###########################" @@ -237,11 +195,12 @@ echo "###########################" echo - gs_base="artifacts.opnfv.org/review" + gs_base="artifacts.opnfv.org/$PROJECT/review" gs_path="$gs_base/$GERRIT_CHANGE_NUMBER" - local_path="docs/$GERRIT_CHANGE_NUMBER" + local_path="upload/$GERRIT_CHANGE_NUMBER" - mv docs/output "$local_path" + mkdir -p upload + mv docs_output "$local_path" gsutil -m cp -r "$local_path" "gs://$gs_base" if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then @@ -256,31 +215,29 @@ sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt - builder: - name: upload-merged-docs-to-opnfv-artifacts + 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 [[ "$GERRIT_BRANCH" == "master" ]] ; then - gs_base="artifacts.opnfv.org/$GERRIT_PROJECT" - else - gs_base="artifacts.opnfv.org/$GERRIT_PROJECT/$GERRIT_BRANCH" - fi - gs_path="$gs_base/docs" - local_path="docs/docs" + gs_path="$GS_URL/docs" + local_path="upload/docs" - mv docs/output "$local_path" - gsutil -m cp -r "$local_path" "gs://$gs_base" + mkdir -p upload + mv docs_output "$local_path" + gsutil -m cp -r "$local_path" "gs://$GS_URL" if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then gsutil -m setmeta \ @@ -297,7 +254,10 @@ name: report-docs-build-result-to-gerrit builders: - shell: | - #!/bin/bash -e + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace export PATH=$PATH:/usr/local/bin/ if [[ -e gerrit_comment.txt ]] ; then echo @@ -315,11 +275,21 @@ name: remove-old-docs-from-opnfv-artifacts 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 @@ -328,6 +298,90 @@ 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 ..." + + # Get number of flake8 violations. If none, this will be an + # empty string: "" + FLAKE_COUNT="$(find . \ + -path './releng_flake8' -prune -o \ + -type f -name "*.py" -print | \ + xargs flake8 --exit-zero -qq --count 2>&1)" + + if [ ! -z $FLAKE_COUNT ]; then + echo "Flake8 Violations: $FLAKE_COUNT" >> lint.log + find . \ + -path './releng_flake8' -prune -o \ + -type f -name "*.py" -print | \ + xargs flake8 --exit-zero --first >> violation.log + SHOWN=$(wc -l violation.log | cut -d' ' -f1) + echo -e "First $SHOWN shown\n---" >> lint.log + cat violation.log >> lint.log + sed -r -i '4,$s/^/ /g' lint.log + rm violation.log + else + echo -e "Flake8 Violations: 0" > lint.log + fi + + 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 + 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: @@ -339,6 +393,6 @@ name: upload-merged-docs builders: - build-html-and-pdf-docs-output - - upload-merged-docs-to-opnfv-artifacts + - upload-generated-docs-to-opnfv-artifacts - report-docs-build-result-to-gerrit - remove-old-docs-from-opnfv-artifacts