https://github.com/toucantoco/releaseman
Git flow + GitHub PRs = <3
https://github.com/toucantoco/releaseman
Last synced: 3 months ago
JSON representation
Git flow + GitHub PRs = <3
- Host: GitHub
- URL: https://github.com/toucantoco/releaseman
- Owner: ToucanToco
- License: mit
- Created: 2017-09-12T11:59:13.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-03T05:26:35.000Z (over 2 years ago)
- Last Synced: 2024-12-27T19:30:55.815Z (5 months ago)
- Language: JavaScript
- Homepage:
- Size: 825 KB
- Stars: 1
- Watchers: 18
- Forks: 0
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Releaseman
Git flow + GitHub PRs = <3## Installation
- Copy `src/defaults.json.dist` as `src/defaults.json`
- Complete the new file with your defaults (See [options](#options))
- Run `yarn`
- You now have an executable file at `./bin/releaseman`> :warning: Each time `defaults.json` is modified or `releaseman` updated, you need to run `yarn` again to update the binary
## Usage
`releaseman [options]`### Options
| CLI | Description |
| ---------------------------- | ------------------------------------------------------------------- |
| `--branches.beta ` | Latest beta branch |
| `--branches.develop ` | Develop branch |
| `--branches.doc ` | Documentation branches prefix |
| `--branches.feature ` | Feature branches prefix |
| `--branches.fix ` | Fix branches prefix |
| `--branches.hotfix ` | Hotfix branches prefix |
| `--branches.master ` | Master branch |
| `--branches.release ` | Release branches prefix |
| `--categories ` | JSON array of labels/titles from which the changelogs are generated |
| `--defaults ` | Path to a custom defaults JSON file |
| `--doc` | Enable documentation mode |
| `--labels.breaking ` | Label triggering a breaking change in the version number |
| `--labels.doc ` | Label for documentation pull requests |
| `--labels.feature ` | Label for features pull requests |
| `--labels.fix ` | Label for fixes pull requests |
| `--labels.release ` | Label for releases pull requests |
| `--labels.wip ` | Label for unfinished pull requests |
| `--no-release` | Skip tag/release creation (for fixes/hotfixes) |
| `--owner ` | Repository owner |
| `--repo ` | Repository name |
| `--tag ` | Tags prefix |
| `--token ` | GitHub access token |
| `--verbose` | Log requests & full errors |### Commands
#### Changes
Display the changelog for the next beta or stable release.`releaseman changes start|finish [options]`
| CLI | Description |
| -------- | -------------------------- |
| `finish` | Use latest beta and master |
| `start` | Use develop and master |#### Continue
Re-run the last command starting where it failed.`releaseman continue`
#### Feature
Start, publish or finish a feature.`releaseman feature ((start|publish) )|(finish ) [options]`
| CLI | Description |
| ---------- | -------------------------------- |
| `finish` | Merge the feature into develop |
| `publish` | Create the pull request |
| `start` | Create a new branch from develop |
| `` | Feature name |
| `` | Feature pull request number |#### Fix
Start, publish or finish a fix.`releaseman fix ((start|publish) )|(finish ) [options]`
| CLI | Description |
| ---------- | ----------------------------------------------------- |
| `finish` | Merge the fix into the release branch and backport it |
| `publish` | Create the pull request |
| `start` | Create a new branch from the release branch |
| `` | Fix name |
| `` | Fix pull request number |#### Help
Display help on `releaseman`'s usage.`releaseman help []`
| CLI | Description |
| ----------- | ------------------------------------------------------------------------------------------------ |
| `` | Command on which to display help: changes, continue, feature, fix, help, hotfix, init or release |#### Hotfix
Start, publish or finish a hotfix.`releaseman hotfix ((start|publish) )|(finish ) [options]`
| CLI | Description |
| ---------- | -------------------------------------------- |
| `finish` | Merge the hotfix into master and backport it |
| `publish` | Create the pull request |
| `start` | Create a new branch from master |
| `` | Hotfix name |
| `` | Hotfix pull request number |#### Init
Make your repository ready for `releaseman` by creating develop and latest-beta branches, an initial release and labels.`releaseman init`
#### Release
Create a new beta or stable release.
The `` param is used as the new release's name.
It is used only when creating a new beta since the stable release will reuse it's beta name.`releaseman release (start )|finish [options]`
| CLI | Description |
| -------- | --------------------------- |
| `finish` | Create a new stable release |
| `start` | Create a new beta release |
| `` | Release name |## Typical workflow
Using releaseman from it's cloned folder without `repo` specified in the `defaults.json`### Start the release process
`./bin/releaseman release start --repo `At this point, if some PRs were mis-labeled, `releaseman` will probably crash.
Don't worry, the `continue` command is made for this, you can fix the labels
in GitHub and run`./bin/releaseman continue`
`releaseman` will skip all the steps before the one it crashed on and runs with the same options as before.
### Deploy release branch and test (optional)
If some fixes need to be done here, create a fix branch with`./bin/releaseman fix start --repo `
It will create a `fix/` branch.
Make your fixes on it, then create a PR with`./bin/releaseman fix publish --repo `
Then merge it using
`./bin/releaseman fix finish --repo `
### Finish the release process.
`./bin/releaseman release finish --repo `