A collection of release and changelog management script you can easily use via NPM.
$ npm install @codastic/release
- Creates a
CHANGELOG.md
containing all commits starting withMerge pull request…
. - Bumps the package version and adds version headlines to the
CHANGELOG.md
. - Creates a GitHub release.
Running npm install @codastic/release
adds the following scripts to you local node_modules/.bin
folder:
-
update-changelog: Adds merged pulled requests since last versioned release to
CHANGELOG.md
, Supports pull requests from Github and Bitbucket. -
release: Bumps a new versioned release of the current state into
CHANGELOG.md
andpackage.json
. -
release-github: Creates a Github release by zipping and uploading the build folder and using current version number from
package.json
.
To integrate the release process into your project/package just run $ npm install --save-dev @codastic/release
.
Then use the installed scripts in you package.json
scripts. e.g.
{
"scripts": {
"build": "[your build command]",
"changes": "update-changelog --dry-run .",
"prerelease": "npm run -s test && update-changelog .",
"release": "release .",
"postrelease": "npm run -s build && release-github ./ ./dist",
"test": "[your test command]"
}
}
$ update-changelog ROOT_DIR [OPTIONS]
-
--help
: Outputs help. -
--dry-run
: (optional) Outputs changes instead of writing toCHANGELOG.md
. -
--since
: (optional) Limit search for pull requests to the given ISO date (e.g.--since='2017-01-01'
). -
--hide-reviewer
: (optional) If set the reviewer will not be put into theCHANGELOG.md
. -
--interactive
: (optional) If set every addition to the changelog has to be confirmed manually. -
--link-commit
: optional If set the commit hash in the output will be linked. Expects a template URL in the form of "http://example.com/:commit".
$ release NPM_PACKAGE_DIR [<newversion> | major | minor | patch | prerelease] [options]
-
--help
: Outputs help. -
--push-build
: (optional) Push the build in this ignored folder to the version branch. -
--target-branch
: (optional) (default: MAJOR.x) The branch where the release will be pushed to (e.g.--target-branch='master'
). -
--build-command
: (optional) Run the build to be able to include the new version frompackage.json
(e.g--build-command='npm run build' ./"
). Also adds and commits the build files if they are not ignored.
$ github-release ROOT_DIR BUILD_DIR
If you run this script the first time, it asks for a GitHub token, which will be stored in [ROOT_DIR]/.github-release
. Here you can learn how how create your personal GitHub token.
IMPORTANT To prevent pushing your personal token to a remote you should add this file to your .gitignore
.
--help
: Outputs help.
- Node 6.10 or higher is required.
node --version # 6.10 or higher
- Git version 2.7 or higher is required for github release script.
git --version # 2.7 or higher
- The repository needs to be checked out via SSH. Need help?
git remote set-url origin git@github.com:SevenOneMedia/adtec-core.git
- The release script uses the GitHub API and therefore requires an accesstoken.
The script will prompt automatically for that token once and stores it in
.git-release
. Make sure the following permissions are granted when creating a new token on GitHub:
[x] repo Full control of private repositories