language: objective-c

os:
    - linux
    - osx
language: generic
sudo: required
dist: trusty
osx_image: xcode8.3
env:
  - DANGER=1
  - TEST=iOS
  - TEST=Unix
  - TEST=watchOS
  - TEST=tvOS
  - TEST=iOS-Example
  - TEST=SPM
matrix:
    exclude:
      - os: osx
        env: DANGER=1
        
      - os: linux
        env: TEST=iOS

      - os: linux
        env: TEST=watchOS

      - os: linux
        env: TEST=tvOS

      - os: linux
        env: TEST=iOS-Example
    include:
      - os: osx
        osx_image: xcode8.2
        env: TEST=iOS
      - os: osx
        osx_image: xcode9
        env: TEST=iOS

notifications:
  slack: rxswift:3ykt2Z61f8GkdvhCZTYPduOL
  email: false

install:
  - if [ `uname` == "Linux" ] ; then 
        curl -sL https://gist.github.com/kylef/5c0475ff02b7c7671d2a/raw/621ef9b29bbb852fdfd2e10ed147b321d792c1e4/swiftenv-install.sh | bash ;
    fi

script: 
  - if [[ `uname` == "Linux" ]] ; then
        . ~/.swiftenv/init;
        swiftenv install 3.1 || true;
    fi
  - if [[ "${DANGER}" -eq 1 ]] ; then
       bundle install --path vendor/bundle;
       bundle exec danger --verbose;
    else
      if [[ `uname` == "Darwin" ]] ; then
          xcodebuild -version;
          xcodebuild -showsdks;
      fi;
      TRAVIS=1 ./scripts/all-tests.sh "${TEST}";
    fi

after_success:
  - sleep 5 # workaround https://github.com/travis-ci/travis-ci/issues/4725
