From 21fca70d8b3d30902b2a2db3b19d371fca8ac7ad Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 1 Apr 2014 16:17:03 -0400 Subject: [PATCH] add script for running build and tests in Jenkins --- .gitignore | 1 + jenkins-build.sh | 86 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100755 jenkins-build.sh diff --git a/.gitignore b/.gitignore index 47fd9ce8..2a4e5024 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ build/ dist/ env/ fdroidserver.egg-info/ +pylint.parseable diff --git a/jenkins-build.sh b/jenkins-build.sh new file mode 100755 index 00000000..ccd9492e --- /dev/null +++ b/jenkins-build.sh @@ -0,0 +1,86 @@ +#!/bin/sh +# +# this is the script run by the Jenkins server to run the build and tests. Be +# sure to always run it in its dir, i.e. ./jenkins-build.sh, otherwise it might +# remove things that you don't want it to. + +if [ `dirname $0` != "." ]; then + echo "only run this script like ./`basename $0`" + exit +fi + +set -e +set -x + +if [ -z $WORKSPACE ]; then + export WORKSPACE=`pwd` +fi + +if [ -z $ANDROID_HOME ]; then + if [ -e ~/.android/bashrc ]; then + . ~/.android/bashrc + else + echo "ANDROID_HOME must be set!" + exit + fi +fi + +#------------------------------------------------------------------------------# +# required Java 7 keytool/jarsigner for :file support + +export PATH=/usr/lib/jvm/java-7-openjdk-amd64/bin:$PATH + +#------------------------------------------------------------------------------# +# run local build +cd $WORKSPACE/fdroidserver/getsig +./make.sh + + +#------------------------------------------------------------------------------# +# run local tests +cd $WORKSPACE/tests +./run-tests.sh + + +#------------------------------------------------------------------------------# +# test building the source tarball +cd $WORKSPACE +python setup.py sdist + + +#------------------------------------------------------------------------------# +# test install using site packages +cd $WORKSPACE +rm -rf $WORKSPACE/env +virtualenv --system-site-packages $WORKSPACE/env +. $WORKSPACE/env/bin/activate +pip install -e $WORKSPACE +python setup.py install + +# run tests in new pip+virtualenv install +. $WORKSPACE/env/bin/activate +fdroid=$WORKSPACE/env/bin/fdroid $WORKSPACE/tests/run-tests.sh + + +#------------------------------------------------------------------------------# +# run pyflakes +pyflakes fdroid makebuildserver fdroidserver/*.py setup.py + + +#------------------------------------------------------------------------------# +# run pylint + +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' +pylint --output-format=parseable --reports=n \ + 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: +#[ $(($? & 1)) = "1" ] && exit 1 +#[ $(($? & 2)) = "2" ] && exit 2 +set -e +