sudo: false
language: cpp

os:
  - linux
  - osx

cache:
  directories:
    - $HOME/.cache/yarn

notifications:
  email: false
  webhooks:
    - http://vscode-probot.westus.cloudapp.azure.com:3450/travis/notifications
    - http://vscode-test-probot.westus.cloudapp.azure.com:3450/travis/notifications

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - gcc-4.9
      - g++-4.9
      - gcc-4.9-multilib
      - g++-4.9-multilib
      - zip
      - libgtk2.0-0
      - libx11-dev
      - libxkbfile-dev
      - libsecret-1-dev

before_install:
  - git submodule update --init --recursive
  - git clone --depth 1 https://github.com/creationix/nvm.git ./.nvm
  - source ./.nvm/nvm.sh
  - nvm install 8.9.1
  - nvm use 8.9.1
  - npm i -g yarn
  # - npm config set python `which python`
  - if [ $TRAVIS_OS_NAME == "linux" ]; then
      export CXX="g++-4.9" CC="gcc-4.9" DISPLAY=:99.0;
      sh -e /etc/init.d/xvfb start;
      sleep 3;
    fi
  # Make npm logs less verbose
  # - npm config set depth 0
  # - npm config set loglevel warn

install:
  - yarn

script:
  - node_modules/.bin/gulp hygiene
  - node_modules/.bin/gulp electron --silent
  - node_modules/.bin/gulp compile --silent --max_old_space_size=4096
  - node_modules/.bin/gulp optimize-vscode --silent --max_old_space_size=4096
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./scripts/test.sh --coverage --reporter dot; else ./scripts/test.sh --reporter dot; fi
  - ./scripts/test-integration.sh

after_success:
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then node_modules/.bin/coveralls < .build/coverage/lcov.info; fi
