language: node_js
node_js:
- "4"
- "stable"
sudo: false
cache:
  directories:
  - node_modules
before_install:
# Symlink closure library
- ln -s $(npm root)/google-closure-library ../closure-library
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
    # Publish to gh-pages as most recent committer
    git config --global user.email $(git log --pretty=format:"%ae" -n1)
    git config --global user.name $(git log --pretty=format:"%an" -n1)
    npm run --silent deploy -- -x -r https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git
  fi

language: node_js
node_js:
- "4"
- "stable"
sudo: false
cache:
  directories:
  - node_modules
before_install:
# Symlink closure library
- ln -s $(npm root)/google-closure-library ../closure-library
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
    # Publish to gh-pages as most recent committer
    GIT_AUTHOR_EMAIL=$(git log --pretty=format:"%ae" -n1) GIT_AUTHOR_NAME=$(git log --pretty=format:"%an" -n1) npm run --silent deploy -- -x -r https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git
  fi

Set git committer single-use vars
Set git committer single-use vars

/ht @cwillisf
