mirror of
https://github.com/primer/css.git
synced 2024-09-21 05:39:15 +03:00
Merge pull request #290 from primer/shawnbot/travis-deploy
Use Travis conditional deployment
This commit is contained in:
commit
420ce3aa66
19
.travis.yml
19
.travis.yml
@ -2,6 +2,9 @@ language: node_js
|
|||||||
node_js:
|
node_js:
|
||||||
- 7
|
- 7
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- npm config set "//registry.npmjs.org/:_authToken=\${NPM_API_KEY}"
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- lerna bootstrap
|
- lerna bootstrap
|
||||||
|
|
||||||
@ -9,8 +12,20 @@ script:
|
|||||||
- npm test
|
- npm test
|
||||||
|
|
||||||
after_success:
|
after_success:
|
||||||
- npm config set "//registry.npmjs.org/:_authToken=\${NPM_API_KEY}"
|
- script/after_success
|
||||||
- script/cibuild --yes
|
|
||||||
|
deploy:
|
||||||
|
# publish release candidates on release branches
|
||||||
|
- provider: script
|
||||||
|
script: script/release-candidate
|
||||||
|
on:
|
||||||
|
branch: /^release/
|
||||||
|
|
||||||
|
# publish "final" releases on master
|
||||||
|
- provider: script
|
||||||
|
script: script/release
|
||||||
|
on:
|
||||||
|
branch: master
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
slack:
|
slack:
|
||||||
|
10
script/after_success
Executable file
10
script/after_success
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
branch=$TRAVIS_BRANCH
|
||||||
|
event=$TRAVIS_EVENT_TYPE
|
||||||
|
|
||||||
|
# only publish canary releases on PRs against dev
|
||||||
|
if [[ "$event" = "pull_request" && "$branch" = "dev" ]]; then
|
||||||
|
script/release-pr --yes
|
||||||
|
fi
|
@ -1,33 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# --yes gets passed in by .travis.yml,
|
|
||||||
# which makes this easier to test locally
|
|
||||||
args=$@
|
|
||||||
|
|
||||||
event=$TRAVIS_EVENT_TYPE
|
|
||||||
branch=$TRAVIS_BRANCH
|
|
||||||
|
|
||||||
# the presence of $TRAVIS_PULL_REQUEST_BRANCH tells us
|
|
||||||
# whether this is a pull request
|
|
||||||
if [[ "$event" = "pull_request" ]]; then
|
|
||||||
upstream_branch=$branch
|
|
||||||
branch=$TRAVIS_PULL_REQUEST_BRANCH
|
|
||||||
# if the *source* branch begins with "release"
|
|
||||||
if [[ "$branch" =~ ^release ]]; then
|
|
||||||
script/release-candidate $args
|
|
||||||
# otherwise, if the *target* branch is dev
|
|
||||||
elif [[ "$upstream_branch" = "dev" ]]; then
|
|
||||||
script/release-pr $args
|
|
||||||
else
|
|
||||||
echo "⚠️ This is a PR, but '$branch' isn't a release branch"
|
|
||||||
echo " and '$upstream_branch' isn't a recognized upstream branch."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
elif [[ "$branch" = "master" ]]; then
|
|
||||||
script/release $args
|
|
||||||
else
|
|
||||||
echo "⚠️ This isn't a PR and '$branch' isn't a release branch."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
echo "📦 Publishing latest release..."
|
echo "📦 Publishing latest release..."
|
||||||
script/notify pending
|
|
||||||
|
$(dirname $0)/notify pending
|
||||||
|
|
||||||
# note: try-publish should exit cleanly if it detects a duplicate
|
# note: try-publish should exit cleanly if it detects a duplicate
|
||||||
# published version
|
# published version
|
||||||
lerna exec -- $(pwd)/script/try-publish
|
$(npm bin)/lerna exec -- $(pwd)/script/try-publish
|
||||||
script/notify success
|
|
||||||
|
$(dirname $0)/notify success
|
||||||
|
@ -6,7 +6,6 @@ PATH=$(npm bin):$PATH
|
|||||||
|
|
||||||
package=primer-css
|
package=primer-css
|
||||||
npm_tag=rc
|
npm_tag=rc
|
||||||
log=/tmp/rc.log
|
|
||||||
|
|
||||||
# get the version we're publishing as a release candidate
|
# get the version we're publishing as a release candidate
|
||||||
local_version=$(jq -r .version modules/$package/package.json)
|
local_version=$(jq -r .version modules/$package/package.json)
|
||||||
@ -53,13 +52,15 @@ for module_dir in $module_dirs; do
|
|||||||
echo "$module@$module_version => $module_next_version"
|
echo "$module@$module_version => $module_next_version"
|
||||||
# "upgrade" to the most recent RC version so that
|
# "upgrade" to the most recent RC version so that
|
||||||
# `npm version prerelease` can increment automatically
|
# `npm version prerelease` can increment automatically
|
||||||
npm version --no-git --quiet "$module_next_version" >> $log
|
npm version --no-git --quiet "$module_next_version"
|
||||||
|
|
||||||
popd > /dev/null
|
popd > /dev/null
|
||||||
done
|
done
|
||||||
|
|
||||||
# publish all the things!
|
# publish all the things!
|
||||||
script/notify pending
|
$(dirname $0)/notify pending
|
||||||
|
|
||||||
# note: this should NOT fail, so --bail=true applies
|
# note: this should NOT fail, so --bail=true applies
|
||||||
lerna exec -- npm publish --tag=$npm_tag
|
lerna exec -- npm publish --tag=$npm_tag
|
||||||
script/notify success
|
|
||||||
|
$(dirname $0)/notify success
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
echo "🐦 Publishing PR (canary) release..."
|
||||||
|
|
||||||
args=$@
|
PATH=$(npm bin):$PATH
|
||||||
npm_tag=pr
|
|
||||||
|
|
||||||
echo "🐦 Publishing PR release to dist-tag '$npm_tag'..."
|
|
||||||
# script/notify pending
|
# script/notify pending
|
||||||
lerna publish --npm-tag=$npm_tag --canary --no-git $args
|
|
||||||
script/notify success
|
lerna publish --npm-tag=pr --canary --no-git $@
|
||||||
|
|
||||||
|
$(dirname $0)/notify success
|
||||||
|
|
||||||
|
# FIXME remove this before merging; just for testing
|
||||||
|
$(dirname $0)/notify-slack
|
||||||
|
Loading…
Reference in New Issue
Block a user