language: python notifications: irc: "chat.freenode.net#pil" env: MAX_CONCURRENCY=4 python: - "pypy" - "pypy3" - 2.6 - 2.7 - "2.7_with_system_site_packages" # For PyQt4 - 3.2 - 3.3 - 3.4 install: - "travis_retry sudo apt-get -qq install libfreetype6-dev liblcms2-dev python-qt4 ghostscript libffi-dev libjpeg-turbo-progs cmake imagemagick" - "travis_retry pip install cffi" - "travis_retry pip install coverage nose" # Pyroma installation is slow on Py3, so just do it for Py2. - if [ ${TRAVIS_PYTHON_VERSION:0:1} == "2" ]; then travis_retry pip install pyroma; fi - if [ "$TRAVIS_PYTHON_VERSION" == "2.6" ]; then travis_retry pip install unittest2; fi # webp - pushd depends && ./install_webp.sh && popd # openjpeg - pushd depends && ./install_openjpeg.sh && popd script: - coverage erase - python setup.py clean - CFLAGS="-coverage" python setup.py build_ext --inplace - coverage run --append --include=PIL/* selftest.py # Temporarily remove fail-fast # - coverage run --append --include=PIL/* -m nose -vx Tests/test_*.py - coverage run --append --include=PIL/* -m nose -v Tests/test_*.py after_success: # gather the coverage data - travis_retry sudo apt-get -qq install lcov - lcov --capture --directory . -b . --output-file coverage.info # filter to remove system headers - lcov --remove coverage.info '/usr/*' -o coverage.filtered.info # convert to json - travis_retry gem install coveralls-lcov - coveralls-lcov -v -n coverage.filtered.info > coverage.c.json - coverage report - travis_retry pip install coveralls-merge - coveralls-merge coverage.c.json - travis_retry pip install pep8 pyflakes - pep8 --statistics --count PIL/*.py - pep8 --statistics --count Tests/*.py - pyflakes PIL/*.py | tee >(wc -l) - pyflakes Tests/*.py | tee >(wc -l) # Coverage and quality reports on just the latest diff. # (Installation is very slow on Py3, so just do it for Py2.) - if [ ${TRAVIS_PYTHON_VERSION:0:1} == "2" ]; then Scripts/diffcover-install.sh; fi - if [ ${TRAVIS_PYTHON_VERSION:0:1} == "2" ]; then Scripts/diffcover-run.sh; fi matrix: fast_finish: true