language: node_js
sudo: false
node_js:
  - '6.9.5'

addons:
#  firefox: "38.0"
  apt:
    sources:
      # needed to install g++ that is used by npms's native modules
      - ubuntu-toolchain-r-test
    packages:
      - g++-4.8

branches:
  except:
    - g3_v2_0

cache:
  yarn: true
  directories:
     - ./node_modules
     - ./.chrome/chromium
     - ./aio/node_modules

env:
  global:
    # GITHUB_TOKEN_ANGULAR
    # This is needed for the e2e Travis matrix task to publish packages to github for continuous packages delivery.
    - secure: "fq/U7VDMWO8O8SnAQkdbkoSe2X92PVqg4d044HmRYVmcf6YbO48+xeGJ8yOk0pCBwl3ISO4Q2ot0x546kxfiYBuHkZetlngZxZCtQiFT9kyId8ZKcYdXaIW9OVdw3Gh3tQyUwDucfkVhqcs52D6NZjyE2aWZ4/d1V4kWRO/LMgo="
    # FIREBASE_TOKEN
    # This is needed for publishing builds to the "aio-staging" firebase site.
    # TODO(i): the token was generated using the iminar@google account, we should switch to a shared/role-base account.
    - secure: "MPx3UM77o5IlhT75PKHL0FXoB5tSXDc3vnCXCd1sRy4XUTZ9vjcV6nNuyqEf+SOw659bGbC1FI4mACGx1Q+z7MQDR85b1mcA9uSgHDkh+IR82CnCVdaX9d1RXafdJIArahxfmorbiiPPLyPIKggo7ituRm+2c+iraoCkE/pXxYg="
  matrix:
    # Order: a slower build first, so that we don't occupy an idle travis worker waiting for others to complete.
    - CI_MODE=e2e
    - CI_MODE=js
    - CI_MODE=saucelabs_required
    - CI_MODE=browserstack_required
    - CI_MODE=saucelabs_optional
    - CI_MODE=browserstack_optional
    - CI_MODE=docs_test
    - CI_MODE=aio

matrix:
  fast_finish: true
  allow_failures:
    - env: "CI_MODE=saucelabs_optional"
    - env: "CI_MODE=browserstack_optional"

install:
  - ./scripts/ci-lite/install.sh

script:
  - ./scripts/ci-lite/build.sh && ./scripts/ci-lite/test.sh

after_success:
  - ./scripts/ci-lite/deploy_aio_staging.sh

after_script:
  - ./scripts/ci-lite/cleanup.sh
