Disable CI Email Notifications for Gerrit Reviews
[releng.git] / jjb / releng-macros.yaml
index 9d6a542..d7f9be1 100644 (file)
             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:
     name: build-html-and-pdf-docs-output
     builders:
         - shell: |
-            #!/bin/bash -e
+            #!/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
     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 output ]]
+            [[ -d docs_output ]] || exit 0
 
             echo
             echo "###########################"
             echo "###########################"
             echo
 
-            gs_base="artifacts.opnfv.org/review"
+            gs_base="artifacts.opnfv.org/$PROJECT/review"
             gs_path="$gs_base/$GERRIT_CHANGE_NUMBER"
             local_path="upload/$GERRIT_CHANGE_NUMBER"
 
             mkdir -p upload
-            mv output "$local_path"
+            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
     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 output ]]
+            [[ -d docs_output ]] || exit 0
 
             echo
             echo "########################"
             local_path="upload/docs"
 
             mkdir -p upload
-            mv output "$local_path"
+            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
     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
                 ssh -p 29418 gerrit.opnfv.org \
                     "gerrit review -p $GERRIT_PROJECT \
                      -m '$(cat gerrit_comment.txt)' \
-                     $GERRIT_PATCHSET_REVISION"
+                     $GERRIT_PATCHSET_REVISION \
+                     --notify NONE"
             fi
 
 - builder:
     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
                 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 \
+                     --notify NONE"
+            fi
+
 - builder:
     name: upload-review-docs
     builders: