fi
fi
+
+#------------------------------------------------------------------------------#
+# cache pypi downloads
+if [ -z $PIP_DOWNLOAD_CACHE ]; then
+ export PIP_DOWNLOAD_CACHE=$HOME/.pip_download_cache
+fi
+
+
#------------------------------------------------------------------------------#
# required Java 7 keytool/jarsigner for :file support
#------------------------------------------------------------------------------#
# run local tests
cd $WORKSPACE/tests
-./run-tests.sh
+./run-tests ~jenkins/
#------------------------------------------------------------------------------#
# test building the source tarball
cd $WORKSPACE
-python setup.py sdist
+python2 setup.py sdist
#------------------------------------------------------------------------------#
# test install using site packages
cd $WORKSPACE
rm -rf $WORKSPACE/env
-virtualenv --system-site-packages $WORKSPACE/env
+virtualenv --python=python2 --system-site-packages $WORKSPACE/env
. $WORKSPACE/env/bin/activate
pip install -e $WORKSPACE
-python setup.py install
+python2 setup.py install
# run tests in new pip+virtualenv install
. $WORKSPACE/env/bin/activate
-fdroid=$WORKSPACE/env/bin/fdroid $WORKSPACE/tests/run-tests.sh
+fdroid=$WORKSPACE/env/bin/fdroid $WORKSPACE/tests/run-tests ~jenkins/
#------------------------------------------------------------------------------#
-# run pyflakes
-pyflakes fdroid makebuildserver fdroidserver/*.py setup.py
+# run git pre-commit hook for pep8, pyflakes, etc
+sh hooks/pre-commit
#------------------------------------------------------------------------------#
cd $WORKSPACE
set +e
-# disable E1101 until there is a plugin to handle this properly:
-# Module 'sys' has no '_MEIPASS' member
-# disable F0401 until there is a plugin to handle this properly:
-# keysync-gui:25: [F] Unable to import 'ordereddict'
# use the virtualenv python so pylint checks against its installed libs
-python /usr/bin/pylint --output-format=parseable --reports=n \
- fdroidserver/*.py fdroid makebuildserver setup.py > $WORKSPACE/pylint.parseable
+ PYTHONPATH=$WORKSPACE/.pylint-plugins python2 /usr/bin/pylint \
+ --output-format=parseable --reports=n \
+ --load-plugins astng_hashlib \
+ fdroidserver/*.py fdroid makebuildserver setup.py > $WORKSPACE/pylint.parseable
# to only tell jenkins there was an error if we got ERROR or FATAL, uncomment these:
+# running pylint in the virtualenv is causing this FATAL error, which is a bug:
+# https://bitbucket.org/logilab/pylint/issue/73/pylint-is-unable-to-import
[ $(($? & 1)) = "1" ] && echo "FATALs found"
-[ $(($? & 2)) = "2" ] && echo "ERRORs found"
-[ $(($? & 4)) = "4" ] && echo "WARNINGs found"
+[ $(($? & 2)) = "2" ] && exit 2
+[ $(($? & 4)) = "4" ] && exit 4
set -e