sudo: false cache: directories: - $HOME/.ccache - $HOME/.cache/pip - $HOME/.cache/matplotlib addons: apt: packages: - inkscape - libav-tools - gdb - mencoder - dvipng - pgf - lmodern - cm-super - texlive-latex-base - texlive-latex-extra - texlive-fonts-recommended - texlive-latex-recommended - texlive-xetex - graphviz # - fonts-humor-sans # sources: # - debian-sid env: global: - ARTIFACTS_AWS_REGION=us-east-1 - ARTIFACTS_S3_BUCKET=matplotlib-test-results - secure: RgJI7BBL8aX5FTOQe7xiXqWHMxWokd6GNUWp1NUV2mRLXPb9dI0RXqZt3UJwKTAzf1z/OtlHDmEkBoTVK81E9iUxK5npwyyjhJ8yTJmwfQtQF2n51Q1Ww9p+XSLORrOzZc7kAo6Kw6FIXN1pfctgYq2bQkrwJPRx/oPR8f6hcbY= - secure: E7OCdqhZ+PlwJcn+Hd6ns9TDJgEUXiUNEI0wu7xjxB2vBRRIKtZMbuaZjd+iKDqCKuVOJKu0ClBUYxmgmpLicTwi34CfTUYt6D4uhrU+8hBBOn1iiK51cl/aBvlUUrqaRLVhukNEBGZcyqAjXSA/Qsnp2iELEmAfOUa92ZYo1sk= - secure: "dfjNqGKzQG5bu3FnDNwLG8H/C4QoieFo4PfFmZPdM2RY7WIzukwKFNT6kiDfOrpwt+2bR7FhzjOGlDECGtlGOtYPN8XuXGjhcP4a4IfakdbDfF+D3NPIpf5VlE6776k0VpvcZBTMYJKNFIMc7QPkOwjvNJ2aXyfe3hBuGlKJzQU=" - BUILD_DOCS=false - NUMPY=numpy - PANDAS= - NPROC=2 - TEST_ARGS=--no-pep8 - NOSE_ARGS="--processes=$NPROC --process-timeout=300" language: python matrix: include: - python: 2.7 env: MOCK=mock NUMPY=numpy==1.6 - python: 3.4 - python: 3.5 env: PANDAS=pandas NOSE_ARGS=--with-coverage - python: 3.5 env: TEST_ARGS=--pep8 - python: 3.5 env: BUILD_DOCS=true - python: "nightly" env: PRE=--pre allow_failures: - python: "nightly" before_install: - | # Install into our own pristine virtualenv source ci/travis/travis_tools.sh virtualenv --python=python venv source venv/bin/activate export PATH=/usr/lib/ccache:$PATH install: - | # Setup environment ccache -s # Upgrade pip and setuptools and wheel to get as clean an install as possible pip install --upgrade pip pip install --upgrade wheel pip install --upgrade setuptools - | # Install dependencies if [ -z "$PRE" ]; then # Install only from travis wheelhouse wheelhouse_pip_install $NUMPY $PANDAS; else # Fall back to pypi for non suported python versions pip install $PRE $NUMPY $PANDAS; fi # Always install from pypi pip install $PRE pep8 cycler coveralls coverage python-dateutil pyparsing!=2.0.4 pip install pillow sphinx!=1.3.0 $MOCK numpydoc ipython colorspacious # Install nose from a build which has partial # support for python36 and suport for coverage output suppressing pip install git+https://github.com/jenshnielsen/nose.git@matplotlibnose # We manually install humor sans using the package from Ubuntu 14.10. Unfortunatly humor sans is not # availible in the Ubuntu version used by Travis but we can manually install the deb from a later # version since is it basically just a .ttf file # The current Travis Ubuntu image is to old to search .local/share/fonts so we store fonts in .fonts if [[ $BUILD_DOCS == true ]]; then wget https://github.com/google/fonts/blob/master/ofl/felipa/Felipa-Regular.ttf?raw=true -O Felipa-Regular.ttf wget http://mirrors.kernel.org/ubuntu/pool/universe/f/fonts-humor-sans/fonts-humor-sans_1.0-1_all.deb mkdir -p tmp mkdir -p ~/.fonts dpkg -x fonts-humor-sans_1.0-1_all.deb tmp cp tmp/usr/share/fonts/truetype/humor-sans/Humor-Sans.ttf ~/.fonts cp Felipa-Regular.ttf ~/.fonts fc-cache -f -v else # Use the special local version of freetype for testing cp ci/travis/setup.cfg . fi; - | # Install matplotlib pip install -e . script: # The number of processes is hardcoded, because using too many causes the # Travis VM to run out of memory (since so many copies of inkscape and # ghostscript are running at the same time). - | echo Testing using $NPROC processes echo The following args are passed to nose $NOSE_ARGS if [[ $BUILD_DOCS == false ]]; then export MPL_REPO_DIR=$PWD # needed for pep8-conformance test of the examples gdb -return-child-result -batch -ex r -ex bt --args python tests.py $NOSE_ARGS $TEST_ARGS else cd doc python make.py html --small --warningsaserrors # We don't build the LaTeX docs here, so linkchecker will complain touch build/html/Matplotlib.pdf # Linkchecker only works with python 2.7 for the time being deactivate source ~/virtualenv/python2.7/bin/activate pip install pip --upgrade pip install linkchecker linkchecker build/html/index.html fi - rm -rf $HOME/.cache/matplotlib/tex.cache - rm -rf $HOME/.cache/matplotlib/test_cache after_failure: - | if [[ $BUILD_DOCS == false && $TRAVIS_PULL_REQUEST == false && $TRAVIS_REPO_SLUG == 'matplotlib/matplotlib' ]]; then gem install travis-artifacts cd $TRAVIS_BUILD_DIR/../tmp_test_dir tar cjf result_images.tar.bz2 result_images travis-artifacts upload --path result_images.tar.bz2 echo https://s3.amazonaws.com/matplotlib-test-results/artifacts/${TRAVIS_BUILD_NUMBER}/${TRAVIS_JOB_NUMBER}/result_images.tar.bz2 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: - | if [[ $TRAVIS_PULL_REQUEST == false && $TRAVIS_REPO_SLUG == 'matplotlib/matplotlib' && $BUILD_DOCS == true && $TRAVIS_BRANCH == 'master' ]]; then cd $TRAVIS_BUILD_DIR echo "Uploading documentation" openssl aes-256-cbc -K $encrypted_cc802e084cd0_key -iv $encrypted_cc802e084cd0_iv -in ci/travis/matplotlibDeployKey.enc -out ci/travis/matplotlibDeployKey -d eval `ssh-agent -s` chmod 600 ci/travis/matplotlibDeployKey ssh-add ci/travis/matplotlibDeployKey cd .. git clone git@github.com:matplotlib/devdocs.git cd devdocs git checkout --orphan gh-pages git reset --hard first_commit cp -R ../matplotlib/doc/build/html/. . touch .nojekyll git config --global user.email "MatplotlibTravisBot@nomail" git config --global user.name "MatplotlibTravisBot" git config --global push.default simple git add . git commit -m "Docs build of $TRAVIS_COMMIT" git push --set-upstream origin gh-pages --force else echo "Will only deploy docs build from matplotlib master branch" fi if [[ $TRAVIS_PULL_REQUEST == false ]] && \ [[ $TRAVIS_REPO_SLUG == 'matplotlib/matplotlib' ]] && \ [[ $TRAVIS_BRANCH == 'master' ]]; then cd $TRAVIS_BUILD_DIR python ci/travis/travis_after_all.py export $(cat .to_export_back) if [ "$BUILD_LEADER" = "YES" ]; then if [ "$BUILD_AGGREGATE_STATUS" = "others_succeeded" ]; then echo "All Succeeded! Triggering OSX build..." ./ci/travis/build_children.sh else echo "Some Failed; no OSX build" fi fi fi if [[ $NOSE_ARGS="--with-coverage" ]]; then coveralls fi