InsideWarehouse release/deploy flow.
TODO: wait for it... wait for it... document options :)
- Checks you're on
master
branch- TODO: can we add a double check that you actually made changes since last release (i.e.
develop
is merged in)?
- TODO: can we add a double check that you actually made changes since last release (i.e.
- Checks there are no pending changes
- Bumps version (you need to provide
--bump=patch|minor|major
), updatespackage.json
- Calls
build
build
should be defined to clean up, download/update any necessary data and generate the final bundle forcompress
- Calls
compress
compress
needs to be configured to produce the finalbuild/%APPNAME%-v%VERSION%.tgz
- Inside the archive there should be onlye one folder:
%APPNAME%-v%VERSION%
- TODO: ensure output tgz is named by convention
- If everything succeeds - commits the changes, tags the release and pushes to
origin
- If the Gruntfile is inside the git repo root - the tag/commit will be as if
npm version
was called - If the Gruntfile is in a subfolder, the tag/commit will be prefixed with
%APPNAME%
- TODO: Gracefully revert if
build
/compress
fail - TODO: upload tgz to github
- TODO: merge updated
package.json
back intodevelop
?
- If the Gruntfile is inside the git repo root - the tag/commit will be as if
- Checks you're still on the same commit as the version in the package
- Checks tgz not already uploaded
- TODO: check version folder not present yet
- TODO: check version is newer or explicit than what's on production
- Uploads tgz
- TODO: do we have a place to store tgz for future?
- Extracts tgz remotely
- Symlinks to new version
- Restarts service, if needed
- if
package.json
containsscripts.start
- executesnpm restart
- if
restart.sh
present - executesbash restart.sh
- if