sudo: false
services:
  - redis-server
language: ruby
# Broken bundler on travis CI - https://github.com/bundler/bundler/issues/2784
before_install:
  - gem update --system 2.1.11
  - gem --version
rvm:
  - 1.8.7
  - 1.9.2
  - 1.9.3
  - 2.0.0
  - 2.1.0
  - ruby-head
  - jruby-18mode
  - jruby-19mode
  - jruby-head
  - rbx
jdk:
  - openjdk6
  - openjdk7
  - oraclejdk7
  - oraclejdk8
env:
  - SKIP_DUMMY_ROLLBAR=true
  - SKIP_DUMMY_ROLLBAR=false
gemfile:
  - gemfiles/rails30.gemfile
  - gemfiles/rails31.gemfile
  - gemfiles/rails32.gemfile
  - gemfiles/rails40.gemfile
  - gemfiles/rails41.gemfile
matrix:
  allow_failures:
    - rvm: ruby-head
    - rvm: jruby-18mode
    - rvm: jruby-head

    # NOTE: Allowing this to fail because of some strange error in rspec-core `undefined method `example_group_finished'`.
    # Seems to work with oraclejdk7.
    - rvm: jruby-19mode
      jdk: openjdk7
      env: SKIP_DUMMY_ROLLBAR=false

  exclude:
    # Don't run tests for non-jruby environments with the JDK.
    # NOTE: openjdk7 is missing from these exclusions so that Travis will run at least 1 build for the given rvm.
    - rvm: 1.8.7
      jdk: openjdk6
    - rvm: 1.8.7
      jdk: oraclejdk7
    - rvm: 1.8.7
      jdk: oraclejdk8
    - rvm: 1.9.2
      jdk: openjdk6
    - rvm: 1.9.2
      jdk: oraclejdk7
    - rvm: 1.9.2
      jdk: oraclejdk8
    - rvm: 1.9.3
      jdk: openjdk6
    - rvm: 1.9.3
      jdk: oraclejdk7
    - rvm: 1.9.3
      jdk: oraclejdk8
    - rvm: 2.0.0
      jdk: openjdk6
    - rvm: 2.0.0
      jdk: oraclejdk7
    - rvm: 2.0.0
      jdk: oraclejdk8
    - rvm: 2.1.0
      jdk: openjdk6
    - rvm: 2.1.0
      jdk: oraclejdk7
    - rvm: 2.1.0
      jdk: oraclejdk8
    - rvm: ruby-head
      jdk: openjdk6
    - rvm: ruby-head
      jdk: oraclejdk7
    - rvm: ruby-head
      jdk: oraclejdk8
    - rvm: rbx
      jdk: openjdk6
    - rvm: rbx
      jdk: oraclejdk7
    - rvm: rbx
      jdk: oraclejdk8

    # TODO: comment as to why these are excluded
    - rvm: 1.8.7
      gemfile: gemfiles/rails40.gemfile
    - rvm: 1.8.7
      gemfile: gemfiles/rails41.gemfile
    - rvm: 1.8.7
      gemfile: gemfiles/rails32.gemfile
    - rvm: 1.8.7
      gemfile: gemfiles/rails31.gemfile
    - rvm: 1.9.2
      gemfile: gemfiles/rails40.gemfile
    - rvm: 1.9.2
      gemfile: gemfiles/rails41.gemfile
    - rvm: 1.9.2
      gemfile: gemfiles/rails32.gemfile
    - rvm: 1.9.2
      gemfile: gemfiles/rails31.gemfile
    - rvm: 1.9.3
      gemfile: gemfiles/rails41.gemfile
    - rvm: ruby-head
      gemfile: gemfiles/rails30.gemfile
    - rvm: ruby-head
      gemfile: gemfiles/rails31.gemfile
    - rvm: ruby-head
      gemfile: gemfiles/rails40.gemfile
    - rvm: ruby-head
      gemfile: gemfiles/rails41.gemfile
    - rvm: jruby-18mode
      gemfile: gemfiles/rails30.gemfile
    - rvm: jruby-18mode
      gemfile: gemfiles/rails31.gemfile
    - rvm: jruby-18mode
      gemfile: gemfiles/rails40.gemfile
    - rvm: jruby-18mode
      gemfile: gemfiles/rails41.gemfile
    - rvm: jruby-19mode
      gemfile: gemfiles/rails30.gemfile
    - rvm: jruby-19mode
      gemfile: gemfiles/rails31.gemfile
    - rvm: jruby-19mode
      gemfile: gemfiles/rails40.gemfile
    - rvm: jruby-19mode
      gemfile: gemfiles/rails41.gemfile
    - rvm: jruby-head
      gemfile: gemfiles/rails30.gemfile
    - rvm: jruby-head
      gemfile: gemfiles/rails31.gemfile
    - rvm: jruby-head
      gemfile: gemfiles/rails40.gemfile
    - rvm: jruby-head
      gemfile: gemfiles/rails41.gemfile
    - rvm: rbx
      gemfile: gemfiles/rails30.gemfile
    - rvm: rbx
      gemfile: gemfiles/rails31.gemfile
    - rvm: rbx
      gemfile: gemfiles/rails40.gemfile
    - rvm: rbx
      gemfile: gemfiles/rails41.gemfile