#!/usr/bin/env bash

set -e -o pipefail

echo 'travis_fold:start:ENV'

NODE_VERSION=6.9.5
NPM_VERSION=3.10.7 # do not upgrade to >3.10.8 unless https://github.com/npm/npm/issues/14042 is resolved
YARN_VERSION=0.19.1
CHROMIUM_VERSION=433059 # Chrome 56 linux stable, see https://www.chromium.org/developers/calendar
SAUCE_CONNECT_VERSION=4.3.11



if [[ ${TRAVIS} ]]; then
  # Token for tsd to increase github rate limit
  # See https://github.com/DefinitelyTyped/tsd#tsdrc
  # This does not use http://docs.travis-ci.com/user/environment-variables/#Secure-Variables
  # because those are not visible for pull requests, and those should also be reliable.
  # This SSO token belongs to github account angular-github-ratelimit-token which has no access
  # (password is in Valentine)
  TSDRC='{"token":"ef474500309daea53d5991b3079159a29520a40b"}'


  case ${CI_MODE} in
    js)
      KARMA_JS_BROWSERS=ChromeNoSandbox
      ;;
    saucelabs_required)
      KARMA_JS_BROWSERS=`node -e "console.log(require('/home/travis/build/angular/angular/browser-providers.conf').sauceAliases.CI_REQUIRED.join(','))"`
      ;;
    browserstack_required)
      KARMA_JS_BROWSERS=`node -e "console.log(require('/home/travis/build/angular/angular/browser-providers.conf').browserstackAliases.CI_REQUIRED.join(','))"`
      ;;
    saucelabs_optional)
      KARMA_JS_BROWSERS=`node -e "console.log(require('/home/travis/build/angular/angular/browser-providers.conf').sauceAliases.CI_OPTIONAL.join(','))"`
      ;;
    browserstack_optional)
      KARMA_JS_BROWSERS=`node -e "console.log(require('/home/travis/build/angular/angular/browser-providers.conf').browserstackAliases.CI_OPTIONAL.join(','))"`
      ;;
  esac
else
  KARMA_JS_BROWSERS=Chrome
fi



# GLOBALS

# Prepend `~/.yarn/bin` to the PATH
export PATH=$HOME/.yarn/bin:$PATH

# Append dist/all to the NODE_PATH so that cjs module resolver finds find the packages that use
# absolute module ids (e.g. @angular/core)
export NODE_PATH=${NODE_PATH}:$(pwd)/../../dist/all:$(pwd)/../../dist/tools
export LOGS_DIR=/tmp/angular-build/logs

if [[ ${TRAVIS} ]]; then
  # used by xvfb that is used by Chromium
  export DISPLAY=:99.0

  # Use newer verison of GCC to that is required to compile native npm modules for Node v4+ on Ubuntu Precise
  # more info: https://docs.travis-ci.com/user/languages/javascript-with-nodejs#Node.js-v4-(or-io.js-v3)-compiler-requirements
  export CXX=g++-4.8

  # Used by karma and karma-chrome-launcher
  # In order to have a meaningful SauceLabs badge on the repo page,
  # the angular2-ci account is used only when pushing commits to master;
  # in all other cases, the regular angular-ci account is used.
  if [ "${TRAVIS_PULL_REQUEST}" = "false" ] && [ "${TRAVIS_BRANCH}" = "master" ]; then
    export SAUCE_USERNAME=angular2-ci
    export SAUCE_ACCESS_KEY=693ebc16208a-0b5b-1614-8d66-a2662f4e
  else
    export SAUCE_USERNAME=angular-ci
    export SAUCE_ACCESS_KEY=9b988f434ff8-fbca-8aa4-4ae3-35442987
  fi
  export BROWSER_STACK_USERNAME=angularteam1
  export BROWSER_STACK_ACCESS_KEY=BWCd4SynLzdDcv8xtzsB
  export CHROME_BIN=${HOME}/.chrome/chromium/chrome-linux/chrome
fi

echo 'travis_fold:end:ENV'