sudo: false
language: node_js
node_js:  # Test only current versions of NodeJS >= 8.0 (Mid 2017) to reduce server loads
  - stable
  - "9.3.0"   # same results as 9.0, 9.1, 9.2
  - "8.9.4"   # same results as 8.7, 8.8, 8.9
  - "8.6.0"   # same results as 8.3, 8.4, 8.5
  - "8.2.1"   # same results as 8.0, 8.1, 8.2
  # - "7.10.1"  # same results as 7.6, 7.7, 7.8, 7.9, 7.10
  # - "7.5.0"   # same results as 7.1, 7.2, 7.3, 7.4
  # - "6.12.3"  # same results as 6.5, 6.6, 6.7, 6.8, 6.9, 6.10, 6.11, 6.12
  # - "6.4.0"   # same results as 6.0, 6.1, 6.2, 6.3
script: 
  - npm test
matrix:
  fast_finish: true
  include:  # Test additional versions in Matrix NodeJS < 8.0 && >= 6.0
    - node_js: "node"
      env: PRETEST=true
    # - node_js: "9.3.0" # same results as 9.0, 9.1, 9.2
    #   env: TEST=true ALLOW_FAILURE=true
    # - node_js: "8.9.4" # same results as 8.7, 8.8, 8.9
    #   env: TEST=true ALLOW_FAILURE=true
    # - node_js: "8.6.0" # same results as 8.3, 8.4, 8.5
    #   env: TEST=true ALLOW_FAILURE=true
    # - node_js: "8.2.1" # same results as 8.0, 8.1, 8.2
      # env: TEST=true ALLOW_FAILURE=true
    - node_js: "7.10.1" # same results as 7.6, 7.7, 7.8, 7.9, 7.10
      env: TEST=true ALLOW_FAILURE=true
    - node_js: "7.5.0" # same results as 7.1, 7.2, 7.3, 7.4
      env: TEST=true ALLOW_FAILURE=true
    - node_js: "6.12.3" # same results as 6.5, 6.6, 6.7, 6.8, 6.9, 6.10, 6.11, 6.12
      env: TEST=true ALLOW_FAILURE=true
    - node_js: "6.4.0" # same results as 6.0, 6.1, 6.2, 6.3
      env: TEST=true ALLOW_FAILURE=true
branches:
  only:
  - master
os:
  - linux
  - osx
cache:
  directories:
    - node_modules
after_success:
  # - npm run report-coverage