sudo: false addons: apt: packages: - inkscape - libav-tools - gdb - mencoder - dvipng - texlive-latex-base - texlive-latex-extra - texlive-fonts-recommended - texlive-latex-recommended - 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: 2.7 env: BUILD_DOCS=true MOCK=mock - python: "nightly" env: PRE=--pre allow_failures: - python: "nightly" before_install: - source ci/travis/travis_tools.sh # Install into our own pristine virtualenv - virtualenv --python=python venv - source venv/bin/activate install: # Upgrade pip and setuptools. Mock has issues with the default version of # setuptools - | pip install --upgrade pip pip install --upgrade setuptools # Install only from travis wheelhouse - if [ -z "$PRE" ]; then wheelhouse_pip_install python-dateutil $NUMPY $PANDAS pyparsing!=2.0.4 pillow sphinx!=1.3.0 $MOCK; else pip install $PRE python-dateutil $NUMPY pyparsing!=2.0.4 pillow sphinx!=1.3.0; fi # Always install from pypi - pip install $PRE pep8 cycler coveralls coverage - '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 pip install $PRE numpydoc ipython jsonschema mistune colorspacious pip install -q $PRE linkchecker 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; - 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 build/html/index.html fi 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