language: node_js
cache:
  directories:
    - ~/.npm
    - node_modules/cypress/dist

# Trigger a push build on master and greenkeeper branches + PRs build on every branches
# Avoid double build on PRs (See https://github.com/travis-ci/travis-ci/issues/1147)
branches:
  only:
    - master
    - /^greenkeeper.*$/

stages:
  - test
  - name: release
    if: branch = master AND type IN (push)

jobs:
  include:
    - stage: test
      node_js: 6
      script: npm run test
    - node_js: 8
      script: npm run test
    - node_js: 10
      env: Node 10 & coverage upload
      script:
        - npm run test
        - npm run coverage:upload
    - node_js: lts/*
      env: browser tests
      script: npm run test:browser

    - stage: release
      node_js: lts/*
      env: semantic-release
      script: npm run semantic-release