Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stbaer/gf-release
gitflow release node script
https://github.com/stbaer/gf-release
git-flow gitflow-release history-management release-automation
Last synced: 12 days ago
JSON representation
gitflow release node script
- Host: GitHub
- URL: https://github.com/stbaer/gf-release
- Owner: stbaer
- License: mit
- Created: 2017-01-06T07:48:10.000Z (about 8 years ago)
- Default Branch: develop
- Last Pushed: 2017-07-08T03:13:43.000Z (over 7 years ago)
- Last Synced: 2024-12-08T01:37:00.879Z (about 1 month ago)
- Topics: git-flow, gitflow-release, history-management, release-automation
- Language: JavaScript
- Homepage:
- Size: 87.9 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: History.md
- License: LICENSE.md
Awesome Lists containing this project
README
> gitflow command line release helper - less typing when doing a gitflow release
[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)
## Requirements
- gitflow has to be initialized (please use [gitflow-avh](https://github.com/petervanderdoes/gitflow-avh) because [nvie/gitflow](https://github.com/nvie/gitflow) hasn't been updated in years)
- there needs to be **at least one previous release** with a valid semver version
- npm > 3, node > 6## Usage
Install from [npm](https://npmjs.com/release)
```bash
$ npm i -g gf-release
```To start the release, call
```bash
$ gf-release [options] [command]
```
from the root of a gitflow enabled repo## What it does
- check if the production and dev branches are up to date with the upstream branches
- prompt for selecting the release type (major, minor, patch)
- detect the last release version and the new release version based on the selection
- start the gitflow release
- bump the version number(s) of all files set in the config (see Config section below)
- update the history file if it is specified in the config
- execute the build script if it is specified in the config
- commit the changes (use the -m cli flag for a custom commit message, otherwise it's `Release ${releaseVersion}`)
- finish the release
- prompt if all branches and tags should be pushed
- if everything was pushed, prompt if 'npm publish' should be executed (unless disabled via cli option)## Command line options
```bash
$ gf-release -h
```Commands:
help Display help
Options:
-d, --dry-run only log commands without executing them (disabled by default)
-m, --message enter a custom tag message, if not set it will be "Release [newVersion]"
-n, --no-publish don't prompt for npm publish (disabled by default)
-s, --skip-build skip build before finishing release-h, --help Output usage information
-v, --version Output the version number### Config
This is the default configuration:
```js
{
versionFiles: ["package.json"],
productionBranchName: "master",
developBranchName: "develop",
upstream: "origin",
commitMessagesExclude: ['Merge tag'],
commitMessagesInclude: [],
buildCommand: null,
historyFile: null,
commitBaseUrl: null
}
```
- `versionFiles`: json files that contain a version field which should be bumped when releasing
- `productionBranchName` / `developBranchName`: self explanatory
- `upstream` can be changed in case there's an alias set for `origin`
- `commitMessagesExclude`: Array of strings, commit messages containing one of the strings won't be included in the History
- `commitMessagesInclude`: Array of strings, only include commit messages in the History that contain one of the strings
- if `commitMessagesInclude` contains one or more strings, the exclude array will be ignored
- `buildCommand`: this command will be run before finishing the release, e.g `npm run build`
- `historyFile`: if set it will prepend the history between the last release and this one to the file, e.g 'History.md'
- `commitBaseUrl`: e.g. `https://github.com/stbaer/gf-release/commit` if set, links will be added to commitsIt can be overwritten by adding a `releaseConfig` field to the `package.json`.
```json
...
"releaseConfig": {
"versionFiles": ["package.json", "config/version.json"],
"buildCommand": "npm run myBuildScript",
"productionBranchName": "prod",
"developBranchName": "dev",
"upstream": "myOriginAlias"
}
```## Contribute or Report Issue
Pull requests should target the develop branch.
For bugs and feature requests, [please create an issue][10].
[10]: https://github.com/stbaer/gf-release/issues
## Licence
MIT, see [LICENSE.md](https://github.com/stbaer/gf-release/blob/master/LICENSE.md) for details.