sudo: false
dist: trusty
language: node_js
node_js:
- '11'
install:
- npm install
- git config --global user.email "travis@travis-ci.org"
- git config --global user.name "Travis CI"
script: 
  - npm run test
  - npm run codecov
before_deploy: 
  - npm run test:node
  - npm run increment
  - npm run docs
jobs:
  include:
    - stage: test
      env : BROWSER=chrome
      os: linux
      addons:
        chrome: stable
    - stage: test
      env : BROWSER=chrome
      os: linux
      addons:
        chrome: beta
    - stage: test
      env : BROWSER=firefox
      os: linux
      addons:
        firefox: latest
    - stage: test
      env : BROWSER=firefox
      os: linux
      addons:
        firefox: latest-beta
    - stage: test
      script: 
        - npm run build
        - npm run docs
        - npm run test:examples
      env : TEST_EXAMPLES=1
    - stage: deploy
      os: linux
      script: npm run build
      deploy:
      - provider: npm
        skip_cleanup: true
        email: yotammann@gmail.com
        api_key: $NPM_TOKEN
        tag: next
        on:
          repo: Tonejs/Tone.js
          branch: dev
          # don't publish on cron or PRs
          condition: $TRAVIS_EVENT_TYPE != cron && $TRAVIS_EVENT_TYPE != pull_request
      # publish without @next when pushing on master
      - provider: npm
        skip_cleanup: true
        email: yotammann@gmail.com
        api_key: $NPM_TOKEN
        on:
          repo: Tonejs/Tone.js
          branch: master
          # don't publish on cron or PRs
          condition: $TRAVIS_EVENT_TYPE != cron && $TRAVIS_EVENT_TYPE != pull_request
      # publish build files for releases
      - provider: releases
        api-key: $GH_TOKEN
        file_glob: true
        file: build/*
        skip_cleanup: true
        on:
          tags: true
# cache node_modules to speed up build
cache:
  directories:
    - node_modules