sudo: false

git:
  depth: 1

cache:
  directories:
    - $HOME/.composer/cache

language: php

env:
  global:
    - COVERAGE=0 XDEBUG=0

matrix:
  include:
    - php: 5.5.9
      dist: trusty
      env: LARAVEL='5.2.*'
    - php: 5.5
      dist: trusty
      env: LARAVEL='5.2.*'
    - php: 5.6
      dist: trusty
      env: LARAVEL='5.2.*'
    - php: 5.6
      dist: trusty
      env: LARAVEL='5.3.*'
    - php: 5.6
      dist: trusty
      env: LARAVEL='5.4.*'
    - php: 7.0
      env: LARAVEL='5.2.*'
    - php: 7.0
      env: LARAVEL='5.3.*'
    - php: 7.0
      env: LARAVEL='5.4.*'
    - php: 7.0
      env: LARAVEL='5.5.*'
    - php: 7.1
      env: LARAVEL='5.2.*'
    - php: 7.1
      env: LARAVEL='5.3.*'
    - php: 7.1
      env: LARAVEL='5.4.*'
    - php: 7.1
      env: LARAVEL='5.5.*'
    - php: 7.1
      env: LARAVEL='5.6.*'
    - php: 7.1
      env: LARAVEL='5.7.*'
    - php: 7.1
      env: LARAVEL='5.8.*'
    - php: 7.2
      env: LARAVEL='5.2.*'
    - php: 7.2
      env: LARAVEL='5.3.*'
    - php: 7.2
      env: LARAVEL='5.4.*'
    - php: 7.2
      env: LARAVEL='5.5.*'
    - php: 7.2
      env: LARAVEL='5.6.*'
    - php: 7.2
      env: LARAVEL='5.7.*'
    - php: 7.2
      env: LARAVEL='5.8.*'
    - php: 7.2
      env: LARAVEL='6.*'
    - php: 7.2
      env: LARAVEL='7.*'
    - php: 7.3
      env: LARAVEL='5.2.*' XDEBUG=1
    - php: 7.3
      env: LARAVEL='5.3.*' XDEBUG=1
    - php: 7.3
      env: LARAVEL='5.4.*' XDEBUG=1
    - php: 7.3
      env: LARAVEL='5.5.*' XDEBUG=1
    - php: 7.3
      env: LARAVEL='5.6.*' XDEBUG=1
    - php: 7.3
      env: LARAVEL='5.7.*' XDEBUG=1
    - php: 7.3
      env: LARAVEL='5.8.*' XDEBUG=1
    - php: 7.3
      env: COVERAGE=1 LARAVEL='6.*' XDEBUG=1
    - php: 7.3
      env: COVERAGE=1 LARAVEL='7.*' XDEBUG=1
    - php: 7.3
      env: COVERAGE=1 LARAVEL='8.*' XDEBUG=1
    - php: 7.4
      env: COVERAGE=1 LARAVEL='6.*' XDEBUG=1
    - php: 7.4
      env: COVERAGE=1 LARAVEL='7.*' XDEBUG=1
    - php: 7.4
      env: COVERAGE=1 LARAVEL='8.*' XDEBUG=1
  fast_finish: true


before_install:
  - if [[ $XDEBUG = 0 ]]; then phpenv config-rm xdebug.ini; fi
  - travis_retry composer self-update
  - travis_retry composer require "illuminate/contracts:${LARAVEL}" --no-interaction --no-update

install:
  - COMPOSER_MEMORY_LIMIT=-1 travis_retry composer install --prefer-dist --no-interaction --no-suggest

script:
  - composer test:ci

after_success:
  - if [[ $COVERAGE = 1 ]]; then bash <(curl -s https://codecov.io/bash); fi
