release.sh 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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.js \
  52. packages/vue-server-renderer/server-plugin.js \
  53. packages/vue-server-renderer/client-plugin.js \
  54. packages/vue-template-compiler/build.js
  55. git commit -m "build: build $VERSION"
  56. # generate release note
  57. npm run release:note
  58. # tag version
  59. npm version "$VERSION" --message "build: release $VERSION"
  60. # publish
  61. git push origin refs/tags/v"$VERSION"
  62. git push
  63. if [[ -z $RELEASE_TAG ]]; then
  64. npm publish
  65. else
  66. npm publish --tag "$RELEASE_TAG"
  67. fi
  68. fi