release.sh 1.8 KB

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