
Tracking the version under one `-prerelease` channel allows other packages to depend on `^0.1.0-prerelease` for the most up to date version. Track the git sha for the release in package.json Reuse the json package needed for writing the sha to retrieve the package.json version field
33 lines
1.1 KiB
YAML
33 lines
1.1 KiB
YAML
language: node_js
|
|
node_js:
|
|
- "4.2"
|
|
- "stable"
|
|
sudo: false
|
|
cache:
|
|
directories:
|
|
- node_modules
|
|
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 commit SHA
|
|
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:"%ce" -n1)
|
|
git config --global user.name $(git log --pretty=format:"%cn" -n1)
|
|
./node_modules/.bin/gh-pages -x -r https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git -d playground -m "Build for $(git log --pretty=format:%H)"
|
|
fi
|