summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build-gluster-org/jobs/python-lint.yml60
-rw-r--r--build-gluster-org/scripts/python-lint.sh26
2 files changed, 86 insertions, 0 deletions
diff --git a/build-gluster-org/jobs/python-lint.yml b/build-gluster-org/jobs/python-lint.yml
new file mode 100644
index 0000000..a039343
--- /dev/null
+++ b/build-gluster-org/jobs/python-lint.yml
@@ -0,0 +1,60 @@
+- job:
+ name: python-lint
+ node: smoke7
+ description: python validation of code using pylint and flake8
+ project-type: freestyle
+ concurrent: true
+
+ scm:
+ - glusterfs
+
+ properties:
+ - discard-after-x:
+ x: 30
+ - one-build-per-node
+
+ 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 smoke"
+ server-name: review.gluster.org_for-smoke-jobs
+ skip-vote:
+ failed: true
+ unstable: true
+ notbuilt: true
+ projects:
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'glusterfs'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**'
+
+ parameters:
+ - string:
+ default: refs/heads/master
+ description: 'For review 12345 and patch set 6, this will be refs/changes/45/12345/6. Default: Tip of master'
+ name: GERRIT_REFSPEC
+ - string:
+ default: master
+ description: 'Name of the branch you want to build from. We usually build from master'
+ name: GERRIT_BRANCH
+
+ builders:
+ - shell: !include-raw: ../scripts/python-lint.sh
+
+ publishers:
+ - archive:
+ allow-empty: true
+ artifacts: "./python-lint/*"
+ default-excludes: true
+ fingerprint: false
+ only-if-success: false
+
+ wrappers:
+ - timestamps
diff --git a/build-gluster-org/scripts/python-lint.sh b/build-gluster-org/scripts/python-lint.sh
new file mode 100644
index 0000000..772b6ba
--- /dev/null
+++ b/build-gluster-org/scripts/python-lint.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+RESULT="$WORKSPACE/python-lint"
+mkdir $RESULT
+
+./autogen.sh
+./configure --disable-bd-xlator --enable-debug --enable-gnfs --silent
+
+# run flake8
+flake8 . >"$RESULT/flake8-check.txt"
+FLAKE_COUNT="$(wc -l < '$RESULT/flake8-check.txt')"
+
+#run pylint
+find . -iname "*.py" | xargs pylint --output-format=text >"$RESULT/pylint-check.txt"
+PYLINT_COUNT="$(egrep -wc 'R:|C:|W:|E:|F:' pylint-check.txt)"
+
+#fail build if there's any pylint and flake8 related issues
+if [[ "$FLAKE_COUNT" -gt 0 && "$PYLINT_COUNT" -gt 0 ]]; then
+ echo ""
+ echo "========================================================="
+ echo " Result of python linter"
+ echo " Number of flake8 issues: ${FLAKE_COUNT}"
+ echo " Number of pylint issues: ${PYLINT_COUNT}"
+ echo "========================================================="
+ exit 1
+fi