language: objective-c

os:
    - linux
    - osx
language: generic
sudo: required
dist: trusty
osx_image: xcode9.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

notifications:
  slack: rxswift:3ykt2Z61f8GkdvhCZTYPduOL
  email: false

install:
  - if [ `uname` == "Linux" ] ; then 
        eval "$(curl -sL https://gist.githubusercontent.com/kylef/5c0475ff02b7c7671d2a/raw/9f442512a46d7a2af7b850d65a7e9bd31edfb09b/swiftenv-install.sh)";
    fi

script: 
  - if [[ `uname` == "Linux" ]] ; then
        swiftenv install swift-4.0 || 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;
      swift --version;
      TRAVIS=1 ./scripts/all-tests.sh "${TEST}";
    fi

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