From 70a99cadd033e267b245518e91e86e25d271d8cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 24 Apr 2017 13:58:51 +0200 Subject: [PATCH] jenkins: switch to tox for running tests (#15974) --- getlasso.sh | 20 ++++++++++++++++++++ jenkins.sh | 16 +++------------- pylint.sh | 16 ++++++++++++++++ tox.ini | 30 ++++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 13 deletions(-) create mode 100755 getlasso.sh create mode 100755 pylint.sh create mode 100644 tox.ini diff --git a/getlasso.sh b/getlasso.sh new file mode 100755 index 00000000..680da393 --- /dev/null +++ b/getlasso.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +# Get venv site-packages path +DSTDIR=`python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())'` + +# Get not venv site-packages path +# Remove first path (assuming that is the venv path) +NONPATH=`echo $PATH | sed 's/^[^:]*://'` +SRCDIR=`PATH=$NONPATH python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())'` + +# Clean up +rm -f $DSTDIR/lasso.* +rm -f $DSTDIR/_lasso.* + +# Link +ln -sv $SRCDIR/lasso.py $DSTDIR +ln -sv $SRCDIR/_lasso.* $DSTDIR + +exit 0 + diff --git a/jenkins.sh b/jenkins.sh index b6143a77..26d822f7 100755 --- a/jenkins.sh +++ b/jenkins.sh @@ -2,19 +2,9 @@ set -e +rm -f pylint.out rm -f coverage.xml rm -f test_results.xml -export PIP_USE_WHEEL=no -pip install --upgrade 'pip<8' -pip install --upgrade pylint pylint-django -pip install --upgrade pytest pytest-django pytest-cov WebTest django-webtest 'setuptools<34' -pip install --upgrade -r requirements.txt -pip install --upgrade django-mellon 'django<1.9' - -PYTHONPATH=$(pwd):$PYTHONPATH DJANGO_SETTINGS_MODULE=chrono.settings CHRONO_SETTINGS_FILE=tests/settings.py \ - py.test --junitxml=test_results.xml --cov-report xml --cov=chrono/ --cov-config .coveragerc tests/ - -test -f pylint.out && cp pylint.out pylint.out.prev -(pylint -f parseable --rcfile /var/lib/jenkins/pylint.django.rc chrono | tee pylint.out) || /bin/true -test -f pylint.out.prev && (diff pylint.out.prev pylint.out | grep '^[><]' | grep .py) || /bin/true +pip install --upgrade tox +tox -rv diff --git a/pylint.sh b/pylint.sh new file mode 100755 index 00000000..babdf183 --- /dev/null +++ b/pylint.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +set -e -x +env +if [ -f /var/lib/jenkins/pylint.django.rc ]; then + PYLINT_RC=/var/lib/jenkins/pylint.django.rc +elif [ -f pylint.django.rc ]; then + PYLINT_RC=pylint.django.rc +else + echo No pylint RC found + exit 0 +fi + +test -f pylint.out && cp pylint.out pylint.out.prev +pylint -f parseable --rcfile ${PYLINT_RC} "$@" | tee pylint.out || /bin/true +test -f pylint.out.prev && (diff pylint.out.prev pylint.out | grep '^[><]' | grep .py) || /bin/true diff --git a/tox.ini b/tox.ini new file mode 100644 index 00000000..0d084d8c --- /dev/null +++ b/tox.ini @@ -0,0 +1,30 @@ +[tox] +envlist = coverage-django18-pylint,coverage-django111 +toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/chrono/ + +[testenv] +usedevelop = + coverage: True + nocoverage: False +setenv = + DJANGO_SETTINGS_MODULE=chrono.settings + CHRONO_SETTINGS_FILE=tests/settings.py + coverage: COVERAGE=--junitxml=test_results.xml --cov-report xml --cov=chrono/ +deps = + django18: django>=1.8,<1.9 + django111: django>=1.11,<1.12 + pytest-cov + pytest-django + pytest + pytest-capturelog + WebTest + mock + httmock + pylint + pylint-django + django-webtest + django-mellon +commands = + ./getlasso.sh + py.test {env:COVERAGE:} {posargs:tests/} + pylint: ./pylint.sh chrono/