language: node_js
sudo: false
cache: yarn
node_js:
  - 4
  - 5
  - 6
  - 7
env:
  TEST_SUITE=test

stage: test
script:
  - yarn test -- $TEST_SUITE

jobs:
  fast_finish: true
  allow_failures:
    - stage: end to end
      env: TEST_SUITE=test/e2e/browser BROWSER="internet explorer" PLATFORM="Windows 10"
    - stage: end to end
      env: TEST_SUITE=test/e2e/browser BROWSER="safari" PLATFORM="macOS 10.12"
  include:
    - stage: end to end
      node_js: "node"
      env: TEST_SUITE=test/e2e/connect
    - stage: end to end
      node_js: "node"
      env: TEST_SUITE=test/e2e/express
    - stage: end to end
      node_js: "node"
      env: TEST_SUITE=test/e2e/restify
    - stage: end to end
      node_js: "node"
      addons:
        sauce_connect: true
      env: TEST_SUITE=test/e2e/browser BROWSER="firefox"
    - stage: end to end
      node_js: "node"
      addons:
        sauce_connect: true
      env: TEST_SUITE=test/e2e/browser BROWSER="chrome"
    - stage: end to end
      node_js: "node"
      addons:
        sauce_connect: true
      env: TEST_SUITE=test/e2e/browser BROWSER="internet explorer" PLATFORM="Windows 10"
    - stage: end to end
      node_js: "node"
      addons:
        sauce_connect: true
      env: TEST_SUITE=test/e2e/browser BROWSER="safari" PLATFORM="macOS 10.12"
    - stage: coverage
      node_js: "node"
      addons:
        code_climate: true
      env: TEST_SUITE=test NODE_ENV=coverage
      after_success:
        - yarn global add codeclimate-test-reporter nyc
        - nyc report --reporter=text-lcov | codeclimate-test-reporter
