language: python dist: trusty sudo: false branches: except: - /^auto-backport-of-pr-\d*/ cache: pip: true directories: - $HOME/.ccache # https://github.com/travis-ci/travis-ci/issues/5853 - $HOME/.cache/matplotlib addons: artifacts: paths: - result_images.tar.bz2 apt: packages: - cm-super - dvipng - gdb - gir1.2-gtk-3.0 - graphviz - inkscape - libav-tools - libcairo2 - libgeos-dev - libgirepository-1.0.1 - lmodern - otf-freefont - pgf - texlive-fonts-recommended - texlive-latex-base - texlive-latex-extra - texlive-latex-recommended - texlive-xetex env: global: - ARTIFACTS_AWS_REGION=us-east-1 - ARTIFACTS_BUCKET=matplotlib-test-results - secure: RgJI7BBL8aX5FTOQe7xiXqWHMxWokd6GNUWp1NUV2mRLXPb9dI0RXqZt3UJwKTAzf1z/OtlHDmEkBoTVK81E9iUxK5npwyyjhJ8yTJmwfQtQF2n51Q1Ww9p+XSLORrOzZc7kAo6Kw6FIXN1pfctgYq2bQkrwJPRx/oPR8f6hcbY= - secure: E7OCdqhZ+PlwJcn+Hd6ns9TDJgEUXiUNEI0wu7xjxB2vBRRIKtZMbuaZjd+iKDqCKuVOJKu0ClBUYxmgmpLicTwi34CfTUYt6D4uhrU+8hBBOn1iiK51cl/aBvlUUrqaRLVhukNEBGZcyqAjXSA/Qsnp2iELEmAfOUa92ZYo1sk= - secure: "dfjNqGKzQG5bu3FnDNwLG8H/C4QoieFo4PfFmZPdM2RY7WIzukwKFNT6kiDfOrpwt+2bR7FhzjOGlDECGtlGOtYPN8XuXGjhcP4a4IfakdbDfF+D3NPIpf5VlE6776k0VpvcZBTMYJKNFIMc7QPkOwjvNJ2aXyfe3hBuGlKJzQU=" - CYCLER=cycler - DATEUTIL=python-dateutil - MOCK= - NOSE= - NUMPY=numpy - PANDAS= - PYPARSING=pyparsing - PYTEST='pytest!=3.3.0,>=3.2.0' - PYTEST_COV=pytest-cov - PYTEST_PEP8= - SPHINX=sphinx - OPENBLAS_NUM_THREADS=1 - NPROC=2 - RUN_PEP8= - PYTEST_ARGS="-rawR --maxfail=50 --timeout=300 --durations=25 --cov-report= --cov=lib -n $NPROC" - PYTHON_ARGS= - DELETE_FONT_CACHE= matrix: include: - python: 3.5 # pytest-cov>=2.3.1 due to https://github.com/pytest-dev/pytest-cov/issues/124. env: - CYCLER=cycler==0.10 - DATEUTIL=python-dateutil==2.1 - MOCK=mock - NOSE=nose - NUMPY=numpy==1.10.0 - PANDAS='pandas<0.21.0' - PYPARSING=pyparsing==2.0.1 - PYTEST=pytest==3.1.0 - PYTEST_COV=pytest-cov==2.3.1 - SPHINX=sphinx==1.3 - python: 3.5 env: PYTHON_ARGS=-OO - python: 3.6 env: DELETE_FONT_CACHE=1 PANDAS='pandas<0.21.0' PYTEST_PEP8=pytest-pep8 RUN_PEP8=--pep8 - python: "nightly" env: PRE=--pre - os: osx language: generic # https://github.com/travis-ci/travis-ci/issues/2312 env: MOCK=mock only: master cache: # As for now travis caches only "$HOME/.cache/pip" # https://docs.travis-ci.com/user/caching/#pip-cache pip: false directories: - $HOME/Library/Caches/pip # `cache` does not support `env`-like `global` so copy-paste from top - $HOME/.ccache # https://github.com/travis-ci/travis-ci/issues/5853 - $HOME/.cache/matplotlib allow_failures: - python: "nightly" before_install: - | if [[ $TRAVIS_OS_NAME != 'osx' ]]; then # test with non-ascii in path mkdir /tmp/λ export PATH=$PATH:/tmp/λ export PATH=/usr/lib/ccache:$PATH else ci/travis/silence brew update brew install python3 ffmpeg imagemagick mplayer ccache # make 'python' mean 'python3' ln -sf /usr/local/bin/python3 /usr/local/bin/python hash -r which python python --version # We could install ghostscript and inkscape here to test svg and pdf # but this makes the test time really long. # brew install ghostscript inkscape export PATH=/usr/local/opt/ccache/libexec:$PATH fi install: # Upgrade pip and setuptools. Mock has issues with the default version of # setuptools - | # Setup environment ccache -s git describe # Upgrade pip and setuptools and wheel to get as clean an install as possible python -mpip install --upgrade pip setuptools wheel - | # Install dependencies from PyPI python -mpip install --upgrade $PRE \ codecov \ coverage \ $CYCLER \ $MOCK \ $NOSE \ $NUMPY \ $PANDAS \ codecov \ coverage \ pillow \ $PYPARSING \ $DATEUTIL \ $SPHINX # GUI toolkits are pip-installable only for some versions of Python so # don't fail if we can't install them. Make it easier to check whether the # install was successful by trying to import the toolkit (sometimes, the # install appears to be successful but shared libraries cannot be loaded at # runtime, so an actual import is a better check). python -mpip install cairocffi pgi && python -c 'import pgi as gi; gi.require_version("Gtk", "3.0"); from pgi.repository import Gtk' && echo 'pgi is available' || echo 'pgi is not available' python -mpip install pyqt5==5.9 && python -c 'import PyQt5.QtCore' && echo 'PyQt5 is available' || echo 'PyQt5 is not available' python -mpip install -U --pre \ --no-index -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-14.04 \ wxPython && python -c 'import wx' && echo 'wxPython is available' || echo 'wxPython is not available' python -mpip install $PRE \ $PYTEST \ $PYTEST_COV \ pytest-faulthandler \ $PYTEST_PEP8 \ pytest-rerunfailures \ pytest-timeout \ pytest-xdist # Use the special local version of freetype for testing cp ci/travis/setup.cfg . - | # Install matplotlib python -mpip install -ve . before_script: - | if [[ $TRAVIS_OS_NAME != 'osx' ]]; then export DISPLAY=:99.0 sh -e /etc/init.d/xvfb start fi script: ci/travis/test_script.sh before_cache: - rm -rf $HOME/.cache/matplotlib/tex.cache - rm -rf $HOME/.cache/matplotlib/test_cache after_failure: - | if [[ $TRAVIS_PULL_REQUEST == false && $TRAVIS_REPO_SLUG == 'matplotlib/matplotlib' ]]; then tar cjf result_images.tar.bz2 result_images echo 'See "Uploading Artifacts" near the end of the log for the download URL' else echo "The result images will only be uploaded if they are on the matplotlib/matplotlib repo - this is for security reasons to prevent arbitrary PRs echoing security details." fi after_success: - codecov -e TRAVIS_PYTHON_VERSION