An opinionated CLI for release automation
This CLI requires Node 9.11.2 or higher.
BEFORE YOU INSTALL: please read the prerequisites
npm install -g release-automation
Then simply run the following in your git
instantiated directory
release-automation
Use any of the following flags to print the version of the module: -v
, --v
, -version
, --version
-
Prompts you for a branch name. If you don't provide one, the current branch will be used. If you do provide a branch name, you will be asked which branch to base it on. The master branch will be used as default. Given both are provided, a new branch will be created.
-
Select the branches you want to merge into the selected branch from step 1. Also optional, as you may have done this already.
-
It will attempt to merge the selected branches into the current branch. All successful merges will be printed displayed. If any merge conflicts are raised, the process will exit and give you the chance to resolve them. Once resolved, you can run the script again.
-
Prompts you for the next version of your release. It will suggest one by looking at your current version in
package.json
and the branches you have selected. For example, if you're currently on version1.0.0
, and you have selected 2 branches where the names begin withfeat/
and 1 branch that begins withfix/
, then the suggested version will be1.2.1
. The suggested version will be used as the default version for the next release if you don't provide one. Other semver versions are not suggested for simplicity, but you may specify. -
It will then set
npm version
which will subsequently alsogit tag
the release. If that fails (e.g. package.json doesn't exist), it will set the git tag version manually. -
The current branch will then be pushed with tags to github.
-
Prompts you if you'd like to create a PR into a staging branch, if you would, provide the staging branch
-
A Github link will be printed that directs you to the PR page for the branch you specified into the staging branch
-
A Github link to the release notes page for that release will also be printed.