Browse Source

Add ability to skip pylint checking for upstream ansible files

Jason DeTiberus 9 years ago
parent
commit
4e2ccc174f
1 changed files with 35 additions and 5 deletions
  1. 35 5
      git/pylint.sh

+ 35 - 5
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