A guide for deploying a release to the production environment.
This project's release guide is based on:
$ git checkout develop
$ git pull origin develop
$ git checkout -b release-<newversion>
- Do all of the release branch testing necessary. This could be as simple as running
npm test:ci
, or it could take user testing over a few days. $ npm version <newversion>
(see npm-version for valid values of ).$ git checkout release
$ git merge --no-ff release-<newversion>
$ git push && git push --tags
$ git checkout develop
$ git merge --no-ff release-<newversion>
$ git push origin develop
- Draft a new release on Github. Choose the tag that is the release version you just created, and then title it
v<newversion>
. Then click "Generate release notes". Publish the release and you are finished!
Travis CI will automatically deploy the release to production, as well as push a production tagged Docker image to DockerHub.
Sometimes you might need to push a release for an isolated and small bug fix without what's currently been merged into the develop
branch. The steps for pushing a Patch Release are similar to a standard Release, except you work with the release
branch as opposed to develop
.
$ git checkout release
$ git pull origin release
$ git checkout -b release-<newversion>
(increment patch version)- Do all of the release branch testing necessary. This could be as simple as running
npm test:ci
, or it could take user testing over a few days. $ npm version <newversion>
(see npm-version for valid values of )(npm version patch).$ git checkout release
$ git merge --no-ff release-<newversion>
$ git push && git push --tags
$ git checkout develop
$ git merge --no-ff release-<newversion>
$ git push origin develop
- Draft a new release on Github. Choose the tag that is the release version you just created, and then title it
v<newversion>
. Then click "Generate release notes". Publish the release and you are finished!
- Make a copy of the branch locally:
gh pr checkout ##
git checkout release
git pull origin release
git checkout -b <descriptive-branch-name>
git cherry-pick <every sha in PR branch>
- Make a new PR that merges into
release
(has a base branchrelease
) - Done!