system_site_packages are opposed to the used conda installation. They are both unnecessary and lead to Travis build errors.
195 lines
6.3 KiB
YAML
195 lines
6.3 KiB
YAML
language: python
|
|
sudo: false
|
|
# Credit: Original .travis.yml lifted from VisPy
|
|
|
|
# Here we use anaconda for 2.6 and 3.3, since it provides the simplest
|
|
# interface for running different versions of Python. We could also use
|
|
# it for 2.7, but the Ubuntu system has installable 2.7 Qt4-GL, which
|
|
# allows for more complete testing.
|
|
notifications:
|
|
email: false
|
|
|
|
env:
|
|
# Enable python 2 and python 3 builds
|
|
# Note that the 2.6 build doesn't get flake8, and runs old versions of
|
|
# Pyglet and GLFW to make sure we deal with those correctly
|
|
- PYTHON=2.6 QT=pyqt4 TEST=standard
|
|
- PYTHON=2.7 QT=pyqt4 TEST=extra
|
|
- PYTHON=2.7 QT=pyside TEST=standard
|
|
- PYTHON=3.4 QT=pyqt5 TEST=standard
|
|
# - PYTHON=3.4 QT=pyside TEST=standard # pyside isn't available for 3.4 with conda
|
|
#- PYTHON=3.2 QT=pyqt5 TEST=standard
|
|
|
|
|
|
before_install:
|
|
- if [ ${TRAVIS_PYTHON_VERSION:0:1} == "2" ]; then wget http://repo.continuum.io/miniconda/Miniconda-3.5.5-Linux-x86_64.sh -O miniconda.sh; else wget http://repo.continuum.io/miniconda/Miniconda3-3.5.5-Linux-x86_64.sh -O miniconda.sh; fi
|
|
- chmod +x miniconda.sh
|
|
- ./miniconda.sh -b -p /home/travis/mc
|
|
- export PATH=/home/travis/mc/bin:$PATH
|
|
|
|
# not sure what is if block is for
|
|
- if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then
|
|
GIT_TARGET_EXTRA="+refs/heads/${TRAVIS_BRANCH}";
|
|
GIT_SOURCE_EXTRA="+refs/pull/${TRAVIS_PULL_REQUEST}/merge";
|
|
else
|
|
GIT_TARGET_EXTRA="";
|
|
GIT_SOURCE_EXTRA="";
|
|
fi;
|
|
|
|
# to aid in debugging
|
|
- echo ${TRAVIS_BRANCH}
|
|
- echo ${TRAVIS_REPO_SLUG}
|
|
- echo ${GIT_TARGET_EXTRA}
|
|
- echo ${GIT_SOURCE_EXTRA}
|
|
|
|
install:
|
|
- export GIT_FULL_HASH=`git rev-parse HEAD`
|
|
- conda update conda --yes
|
|
- conda create -n test_env python=${PYTHON} --yes
|
|
- source activate test_env
|
|
- conda install numpy pyopengl pytest flake8 six coverage --yes
|
|
- echo ${QT}
|
|
- echo ${TEST}
|
|
- echo ${PYTHON}
|
|
|
|
- if [ "${QT}" == "pyqt5" ]; then
|
|
conda install pyqt --yes;
|
|
fi;
|
|
- if [ "${QT}" == "pyqt4" ]; then
|
|
conda install pyqt=4 --yes;
|
|
fi;
|
|
- if [ "${QT}" == "pyside" ]; then
|
|
conda install pyside --yes;
|
|
fi;
|
|
- pip install pytest-xdist # multi-thread py.test
|
|
- pip install pytest-cov # add coverage stats
|
|
|
|
# required for example testing on python 2.6
|
|
- if [ "${PYTHON}" == "2.6" ]; then
|
|
pip install importlib;
|
|
fi;
|
|
|
|
# Debugging helpers
|
|
- uname -a
|
|
- cat /etc/issue
|
|
- if [ "${PYTHON}" == "2.7" ]; then
|
|
python --version;
|
|
else
|
|
python3 --version;
|
|
fi;
|
|
|
|
before_script:
|
|
# We need to create a (fake) display on Travis, let's use a funny resolution
|
|
- export DISPLAY=:99.0
|
|
- "sh -e /etc/init.d/xvfb start"
|
|
- /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1400x900x24 -ac +extension GLX +render
|
|
|
|
# Make sure everyone uses the correct python (this is handled by conda)
|
|
- which python
|
|
- python --version
|
|
- pwd
|
|
- ls
|
|
# Help color output from each test
|
|
- RESET='\033[0m';
|
|
RED='\033[00;31m';
|
|
GREEN='\033[00;32m';
|
|
YELLOW='\033[00;33m';
|
|
BLUE='\033[00;34m';
|
|
PURPLE='\033[00;35m';
|
|
CYAN='\033[00;36m';
|
|
WHITE='\033[00;37m';
|
|
start_test() {
|
|
echo -e "${BLUE}======== Starting $1 ========${RESET}";
|
|
};
|
|
check_output() {
|
|
ret=$?;
|
|
if [ $ret == 0 ]; then
|
|
echo -e "${GREEN}>>>>>> $1 passed <<<<<<${RESET}";
|
|
else
|
|
echo -e "${RED}>>>>>> $1 FAILED <<<<<<${RESET}";
|
|
fi;
|
|
return $ret;
|
|
};
|
|
|
|
- if [ "${TEST}" == "extra" ]; then
|
|
start_test "repo size check";
|
|
mkdir ~/repo-clone && cd ~/repo-clone &&
|
|
git init && git remote add -t ${TRAVIS_BRANCH} origin git://github.com/${TRAVIS_REPO_SLUG}.git &&
|
|
git fetch origin ${GIT_TARGET_EXTRA} &&
|
|
git checkout -qf FETCH_HEAD &&
|
|
git tag travis-merge-target &&
|
|
git gc --aggressive &&
|
|
TARGET_SIZE=`du -s . | sed -e "s/\t.*//"` &&
|
|
git pull origin ${GIT_SOURCE_EXTRA} &&
|
|
git gc --aggressive &&
|
|
MERGE_SIZE=`du -s . | sed -e "s/\t.*//"` &&
|
|
if [ "${MERGE_SIZE}" != "${TARGET_SIZE}" ]; then
|
|
SIZE_DIFF=`expr \( ${MERGE_SIZE} - ${TARGET_SIZE} \)`;
|
|
else
|
|
SIZE_DIFF=0;
|
|
fi;
|
|
fi;
|
|
|
|
script:
|
|
|
|
- source activate test_env
|
|
|
|
# Check system info
|
|
- python -c "import pyqtgraph as pg; pg.systemInfo()"
|
|
|
|
# Run unit tests
|
|
- start_test "unit tests";
|
|
PYTHONPATH=. py.test --cov pyqtgraph -sv;
|
|
check_output "unit tests";
|
|
- echo "test script finished. Current directory:"
|
|
- pwd
|
|
|
|
# check line endings
|
|
- if [ "${TEST}" == "extra" ]; then
|
|
start_test "line ending check";
|
|
! find ./ -name "*.py" | xargs file | grep CRLF &&
|
|
! find ./ -name "*.rst" | xargs file | grep CRLF;
|
|
check_output "line ending check";
|
|
fi;
|
|
|
|
# Check repo size does not expand too much
|
|
- if [ "${TEST}" == "extra" ]; then
|
|
start_test "repo size check";
|
|
echo -e "Estimated content size difference = ${SIZE_DIFF} kB" &&
|
|
test ${SIZE_DIFF} -lt 100;
|
|
check_output "repo size check";
|
|
fi;
|
|
|
|
# Check for style issues
|
|
- if [ "${TEST}" == "extra" ]; then
|
|
start_test "style check";
|
|
cd ~/repo-clone &&
|
|
git reset -q travis-merge-target &&
|
|
python setup.py style &&
|
|
check_output "style check";
|
|
fi;
|
|
|
|
# Check install works
|
|
- start_test "install test";
|
|
python setup.py --quiet install;
|
|
check_output "install test";
|
|
|
|
# Check double-install fails
|
|
# Note the bash -c is because travis strips off the ! otherwise.
|
|
- start_test "double install test";
|
|
bash -c "! python setup.py --quiet install";
|
|
check_output "double install test";
|
|
|
|
# Check we can import pg
|
|
- start_test "import test";
|
|
echo "import sys; print(sys.path)" | python &&
|
|
cd /; echo "import pyqtgraph.examples" | python;
|
|
check_output "import test";
|
|
|
|
after_success:
|
|
- cd /home/travis/build/pyqtgraph/pyqtgraph
|
|
- pip install codecov --upgrade # add coverage integration service
|
|
- codecov
|
|
- pip install coveralls --upgrade # add another coverage integration service
|
|
- coveralls
|