language: python

notifications:
  irc: "chat.freenode.net#pil"

# Run slow PyPy* first, to give them a headstart and reduce waiting time.
# Run latest 3.x and 2.x next, to get quick compatibility results.
# Then run the remainder, with fastest Docker jobs last.

matrix:
  fast_finish: true
  include:
    - python: "pypy"
    - python: "pypy3"
    - python: '3.6'
    - python: '2.7'
    - python:  "2.7_with_system_site_packages" # For PyQt4
    - python: '3.5'
    - python: '3.4'
    - python: '3.3'
    - env: DOCKER="alpine"
    - env: DOCKER="arch" # contains PyQt5
    - env: DOCKER="ubuntu-trusty-x86"
    - env: DOCKER="ubuntu-xenial-amd64"
    - env: DOCKER="ubuntu-precise-amd64"
    - env: DOCKER="debian-stretch-x86"

dist: trusty

sudo: required

services:
  - docker

install:
  - if [ "$DOCKER" == "" ]; then .travis/install.sh; fi

before_install:
  - if [ "$DOCKER" ]; then docker pull pythonpillow/$DOCKER; fi

before_script:
# Qt needs a display for some of the tests, and it's only run on the system site packages install
  - "export DISPLAY=:99.0"
  - "sh -e /etc/init.d/xvfb start"

script:
  - |
       if [ "$DOCKER" == "" ]; then
          .travis/script.sh
       else
          docker run -v $TRAVIS_BUILD_DIR:/Pillow pythonpillow/$DOCKER
       fi

after_success:
  - .travis/after_success.sh

after_failure:
  - |
      if [ "$TRAVIS_REPO_SLUG" = "python-pillow/Pillow" ] && [ "$TRAVIS_BRANCH" = "master" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ]; then
        curl -Lo travis_after_all.py https://raw.github.com/dmakhno/travis_after_all/master/travis_after_all.py
        python travis_after_all.py
        export $(cat .to_export_back)
        if [ "$BUILD_LEADER" = "YES" ]; then
          if [ "$BUILD_AGGREGATE_STATUS" = "others_failed" ]; then
            echo "All jobs failed"
          else
            echo "Some jobs failed"
          fi
        fi
      fi

after_script:
  - |
      if [ "$TRAVIS_REPO_SLUG" = "python-pillow/Pillow" ] && [ "$TRAVIS_BRANCH" = "master" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ]; then
        echo leader=$BUILD_LEADER status=$BUILD_AGGREGATE_STATUS
      fi

env:
  global:
    # travis encrypt AUTH_TOKEN=
    secure: "Vzm7aG1Qv0SDQcqiPzZMedNLn5ZmpL7IzF0DYnqcD+/l+zmKU22SnJBcX0uVXumo+r7eZfpsShpqfcdsZvMlvmQnwz+Y6AGKQru9tCKZbTMnuRjWKKXekC+tr8Xt9CKvRVtte5PyXW31paxUI3/e+fQGBwoFjEEC+6EpEOjeRfE="