forked from vuejs/vue
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrelease.sh
80 lines (70 loc) · 1.76 KB
/
release.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/bin/bash
set -e
if [[ -z $1 ]]; then
echo "Enter new version: "
read -r VERSION
else
VERSION=$1
fi
read -p "Releasing $VERSION - are you sure? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Releasing $VERSION ..."
if [[ -z $SKIP_TESTS ]]; then
npm run lint
npm run flow
npm run test:cover
npm run test:e2e -- --env phantomjs
npm run test:ssr
fi
# Sauce Labs tests has a decent chance of failing
# so we usually manually run them before running the release script.
# if [[ -z $SKIP_SAUCE ]]; then
# export SAUCE_BUILD_ID=$VERSION:`date +"%s"`
# npm run test:sauce
# fi
# build
VERSION=$VERSION npm run build
# update packages
# using subshells to avoid having to cd back
( ( cd packages/vue-template-compiler
npm version "$VERSION"
if [[ -z $RELEASE_TAG ]]; then
npm publish
else
npm publish --tag "$RELEASE_TAG"
fi
)
cd packages/vue-server-renderer
npm version "$VERSION"
if [[ -z $RELEASE_TAG ]]; then
npm publish
else
npm publish --tag "$RELEASE_TAG"
fi
)
# commit
git add -A
git add -f \
dist/*.js \
packages/vue-server-renderer/basic.js \
packages/vue-server-renderer/build.dev.js \
packages/vue-server-renderer/build.prod.js \
packages/vue-server-renderer/server-plugin.js \
packages/vue-server-renderer/client-plugin.js \
packages/vue-template-compiler/build.js \
packages/vue-template-compiler/browser.js
git commit -m "build: build $VERSION"
# generate release note
npm run release:note
# tag version
npm version "$VERSION" --message "build: release $VERSION"
# publish
git push origin refs/tags/v"$VERSION"
git push
if [[ -z $RELEASE_TAG ]]; then
npm publish
else
npm publish --tag "$RELEASE_TAG"
fi
fi