language: node_js
node_js:
  - "10"

addons:
  chrome: stable

branches:
  only:
    - auto
    - master
    - beta
    - release
    # release branches
    - /^(?:release|lts)-\d+-\d+$/
    # npm version tags
    - /^v\d+\.\d+\.\d+/

cache:
  yarn: true
  directories:
    - $HOME/.npm
    - $HOME/.cache # includes bower's cache

stages:
  - basic test
  - additional tests
  - name: deploy
    if: type IN (push) AND branch = release

jobs:
  fail_fast: true

  include:

    - stage: basic test
      env: NAME=test # used only to make Travis UI show description
      script:
        - yarn test

    - stage: additional tests
      env: NAME=NODE_6
      node_js: 6

    - env: NAME=NODE_8
      node_js: 8

    - env: NAME=NODE_10
      node_js: 10
      script:
        - yarn test:cover
      after_success:
        - .travis/codecoverage.sh

    - env: EMBER_CLI_ENABLE_ALL_EXPERIMENTS=true
    - env: EMBER_CLI_PACKAGER=true
    - env: EMBER_CLI_MODULE_UNIFICATION=true
    - env: EMBER_CLI_DELAYED_TRANSPILATION=true
    - env: EMBER_CLI_BROCCOLI_2=false
    - env: EMBER_CLI_SYSTEM_TEMP=false

    - stage: deploy
      script: ./.travis/deploy.sh

before_install:
  # prevent the npm loading indicator
  - npm config --global set spin false

  # travis currently includes yarn v0.17.8 (20170705)
  # this isn't new enough for our use of --non-interactive
  - curl -o- -L https://yarnpkg.com/install.sh | bash
  - export PATH=$HOME/.yarn/bin:$PATH

script:
  - yarn test:all
