language: node_js
node_js:
- "4"
- "node"
sudo: false
cache:
  directories:
  - node_modules
install:
- npm install
- npm update
after_script:
- |
  # RELEASE_BRANCHES and NPM_TOKEN defined in Travis settings panel
  declare exitCode
  $(npm bin)/travis-after-all
  exitCode=$?
  if [[
    # Execute after all jobs finish successfully
    $exitCode = 0 &&
    # Only release on release branches
    $RELEASE_BRANCHES =~ $TRAVIS_BRANCH &&
    # Don't release on PR builds
    $TRAVIS_PULL_REQUEST = "false"
  ]]; then
    # Authenticate NPM
    echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" > .npmrc
    # Set version to timestamp
    npm --no-git-tag-version version $($(npm bin)/json -f package.json version)-prerelease.$(date +%s)
    npm publish
  fi
