summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xgit/pylint.sh40
1 files changed, 35 insertions, 5 deletions
diff --git a/git/pylint.sh b/git/pylint.sh
index 286747565..86ea52d45 100755
--- a/git/pylint.sh
+++ b/git/pylint.sh
@@ -1,14 +1,44 @@
#!/usr/bin/env bash
+set -eu
+ANSIBLE_UPSTREAM_FILES=(
+ 'inventory/aws/hosts/ec2.py'
+ 'inventory/gce/hosts/gce.py'
+ 'inventory/libvirt/hosts/libvirt_generic.py'
+ 'inventory/openstack/hosts/nova.py'
+ 'lookup_plugins/sequence.py'
+ )
OLDREV=$1
NEWREV=$2
-TRG_BRANCH=$3
+#TRG_BRANCH=$3
PYTHON=/var/lib/jenkins/python27/bin/python
-/usr/bin/git diff --name-only $OLDREV $NEWREV --diff-filter=ACM | \
- grep ".py$" | \
- xargs -r -I{} ${PYTHON} -m pylint --rcfile ${WORKSPACE}/git/.pylintrc {}
+PY_DIFF=$(/usr/bin/git diff --name-only $OLDREV $NEWREV --diff-filter=ACM | grep ".py$")
-exit $?
+FILES_TO_TEST=""
+
+for PY_FILE in $PY_DIFF; do
+ IGNORE_FILE=false
+ for UPSTREAM_FILE in "${ANSIBLE_UPSTREAM_FILES[@]}"; do
+ if [ "${PY_FILE}" == "${UPSTREAM_FILE}" ]; then
+ IGNORE_FILE=true
+ break
+ fi
+ done
+
+ if [ "${IGNORE_FILE}" == true ]; then
+ echo "Skipping file ${PY_FILE} as an upstream Ansible file..."
+ continue
+ fi
+
+ if [ -e "${PY_FILE}" ]; then
+ FILES_TO_TEST="${FILES_TO_TEST} ${PY_FILE}"
+ fi
+done
+
+if [ "${FILES_TO_TEST}" != "" ]; then
+ echo "Testing files: ${FILES_TO_TEST}"
+ ${PYTHON} -m pylint --rcfile ${WORKSPACE}/git/.pylintrc ${FILES_TO_TEST}
+fi