language: ruby
script: rake spec:travis
before_script: travis_retry rake spec:travis:deps

branches:
  only:
    - master
    - 1-10-stable
    - 1-9-stable
    - 1-8-stable
    - 1-7-stable
    - 1-6-stable
    - 1-5-stable
    - 1-3-stable
    - 1-2-stable
    - 1-1-stable
    - 1-0-stable

notifications:
  email:
    # andre
    - secure: "bCcvqJT7YrBawtkXXwHhT+jOFth7r2Qv/30PkkbhQxk6Jb3xambjCOJ3U6vJ\ngYmiL50exi5lUp3oc3SEbHN5t2CrZqOZDQ6o7P8EAmB5c0oH2RrYaFOkI5Gt\nul/jGH/96A9sj0aMwG7JfdMSfhqj1DUKAm2PnnbXPL853VfmT24="
    # terence
    - secure: "MQ8eA5Jb8YzEpAo58DRGfVJklAPcEbAulpBZnTxp0am6ldneDtJHbQk21w6R\nj5GsDHlzr/lMp/GHIimtUZ7rLohfND8fj/W7fs1Dkd4eN02/ERt98x3pHlqv\nvZgSnZ39uVYv+OcphraE24QaRaGWLhWZAMYQTVe/Yz50NyG8g1U="
  slack:
    on_success: change
    on_failure: always
    rooms:
      - secure: JxBi7DDJGkIF/7f/FSN/HUHpvV4EKfQccZHTPd1b2pNJn3GXo6u+tNVbAw2WjxYzPyPQI3ZcYBCU9SEXp/i7VmG8uMzh8Kyildw+miSKYKVb90uYqcsXWzbxwyNBgJLvyDkzST45H5lgnyAicee3WkFes/WDZikIajbH7ztdb04=

rvm:
  - 2.2
  - 2.1
  - 2.0.0
  - 1.9.3
  - 1.8.7
  - rbx-2

# Rubygems versions MUST be available as rake tasks
# see Rakefile:66 for the list of possible RGV values
env:
  # We need to know if changes to rubygems will break bundler on release
  - RGV=master
  # Test the latest rubygems release with all of our supported rubies
  - RGV=v2.4.8

matrix:
  include:
    # Ruby 2.2, Rubygems 2.4.5 and up (RG 2.4 is included by the matrix above)
    # Ruby 2.1, Rubygems 2.2.2 and up
    - rvm: 2.1
      env: RGV=v2.2.3
    # Ruby 2.0.0, Rubygems 2.0.0 and up
    - rvm: 2.0.0
      env: RGV=v2.2.3
    - rvm: 2.0.0
      env: RGV=v2.1.11
    - rvm: 2.0.0
      env: RGV=v2.0.14
    # Ruby 1.9.3, Rubygems 1.5.3 and up
    - rvm: 1.9.3
      env: RGV=v2.2.3
    - rvm: 1.9.3
      env: RGV=v2.1.11
    - rvm: 1.9.3
      env: RGV=v2.0.14
    - rvm: 1.9.3
      env: RGV=v1.8.29
    - rvm: 1.9.3
      env: RGV=v1.7.2
    - rvm: 1.9.3
      env: RGV=v1.6.2
    - rvm: 1.9.3
      env: RGV=v1.5.3
    # Ruby 1.8.7, Rubygems 1.3.6 and up
    - rvm: 1.8.7
      env: RGV=v2.2.3
    - rvm: 1.8.7
      env: RGV=v2.0.14
    - rvm: 1.8.7
      env: RGV=v1.8.29
    - rvm: 1.8.7
      env: RGV=v1.7.2
    - rvm: 1.8.7
      env: RGV=v1.6.2
    - rvm: 1.8.7
      env: RGV=v1.5.3
    - rvm: 1.8.7
      env: RGV=v1.4.2
    - rvm: 1.8.7
      env: RGV=v1.3.7
    - rvm: 1.8.7
      env: RGV=v1.3.6

    # ALLOWED FAILURES
    # For no apparent reason, this often goes over the Travis limit
    - rvm: 1.8.7
      env: RGV=v2.1.11
    # Ruby 1.9.2 sanity check
    # (but it's just too slow and sometimes goes over the Travis limit)
    - rvm: 1.9.2
      env: RGV=v2.4.8
    # Ruby-head (we want to know how we're doing, but not fail the build)
    - rvm: ruby-head
      env: RGV=master
  allow_failures:
    - rvm: 1.8.7
      env: RGV=v2.1.11
    - rvm: 1.9.2
    - rvm: ruby-head
    - rvm: jruby
    - rvm: rbx-2
