Add Python Linting Job 01/12201/3
authorTrevor Bramwell <tbramwell@linuxfoundation.org>
Tue, 12 Apr 2016 19:06:51 +0000 (12:06 -0700)
committerTrevor Bramwell <tbramwell@linuxfoundation.org>
Tue, 12 Apr 2016 23:11:39 +0000 (16:11 -0700)
Triggers a flake8 run against any python code in the repo.

JIRA: RELENG-81

Change-Id: Ia57d640b5aacdc4f99620ffa3ee345f208b426ea
Signed-off-by: Trevor Bramwell <tbramwell@linuxfoundation.org>
jjb/opnfv/opnfv-lint.yml [new file with mode: 0644]
jjb/releng-macros.yaml

diff --git a/jjb/opnfv/opnfv-lint.yml b/jjb/opnfv/opnfv-lint.yml
new file mode 100644 (file)
index 0000000..aeea34e
--- /dev/null
@@ -0,0 +1,64 @@
+########################
+# Job configuration for opnfv-lint
+########################
+- project:
+
+    name: opnfv-lint
+
+    project: opnfv-lint
+
+    jobs:
+        - 'opnfv-lint-verify-{stream}'
+
+    stream:
+        - master:
+            branch: '{stream}'
+            gs-pathname: ''
+        - brahmaputra:
+            branch: 'stable/{stream}'
+            gs-pathname: '/{stream}'
+
+########################
+# job templates
+########################
+
+- job-template:
+    name: 'opnfv-lint-verify-{stream}'
+
+    parameters:
+        - project-parameter:
+            project: $GERRIT_PROJECT
+        - gerrit-parameter:
+            branch: '{branch}'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: '$GERRIT_REFSPEC'
+            choosing-strategy: 'gerrit'
+
+    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: 'REG_EXP'
+                project-pattern: 'functest'
+                branches:
+                  - branch-compare-type: 'ANT'
+                    branch-pattern: '**/{branch}'
+                file-paths:
+                  - compare-type: ANT
+                    pattern: '**/*.py'
+
+    builders:
+        - lint-python-code
+        - report-lint-result-to-gerrit
index 8c1539c..3bac38a 100644 (file)
 
             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 ..."
+
+            echo -e "Flake8 Violations\n-----------------" >> lint.log
+            find . -type f -name "*.py" | \
+                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
+                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: