https://github.com/balmjs/balm-git-flow
:rocket: The best practices for front-end git flow
https://github.com/balmjs/balm-git-flow
Last synced: about 2 months ago
JSON representation
:rocket: The best practices for front-end git flow
- Host: GitHub
- URL: https://github.com/balmjs/balm-git-flow
- Owner: balmjs
- License: mit
- Created: 2023-03-02T03:52:47.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-04T07:29:17.000Z (over 1 year ago)
- Last Synced: 2024-04-13T23:52:27.447Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 1.97 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Balm Git Flow
> The best practices for front-end git flow
## Features
- One install, unified development process for all git projects
- Relatively simple release initialization
- Easy to configure and publish multiple environment branches
- Support for publishing independent repositories## Workflow
1. main(source code) -> dev(feat, fix...) -> prod(test, pre-production...)
2. main(source code) -> prod(production)## Requirements
1. [Node.js](https://nodejs.org/) >=18 (>=14.18.0 on Windows)
2. [Git](https://git-scm.com/) 2.6.0+## Installation
```sh
npm install -g balm-git-flow
```> ⚠️ NOTE: For Windows users, use `npm install -g balm-git-flow@legacy`
## Configuration
First, create a **`balm.env.js`** file in your project root directory (use `balm-git doctor`)
| Variable Name | Type | Default | Description |
| -------------------------------- | ----------------- | -------------------- | -------------------------------------------------------------------------------------------------- |
| BALM_GIT_FLOW_MAIN | `string` | `'main'` | main branch (source code) |
| BALM_GIT_FLOW_RELEASE | `string`, `array` | `'release'` | production release branch(es) |
| BALM_GIT_FLOW_RELEASES | `array` | `['release']` | all release branches |
| BALM_GIT_FLOW_SCRIPTS | `array` | `['build']` | all build scripts corresponding to the release branches ( the keys of `scripts` in `package.json`) |
| BALM_GIT_FLOW_RELEASE_SCRIPTS | `string` | `JSON.stringify({})` | associated scripts and release branches (`{ [script: string]: [releases: string[]] }`) |
| BALM_GIT_FLOW_BUILD_DIR | `string` | `'dist'` | build out dir (by `npm-run-script`) |
| BALM_GIT_FLOW_IGNORE_UNCOMMITTED | `boolean` | `false` | ignore uncommitted for workflow |
| BALM_GIT_FLOW_USE_CUSTOM_MESSAGE | `boolean` | `false` | use custom log message |
| BALM_GIT_FLOW_REPOSITORIES | `array` | | independent repositories |
| BALM_GIT_FLOW_SITE | `string` | | production release branch for independent repositories |- release scripts settings
- Method 1:
```ini
BALM_GIT_FLOW_RELEASES = ['test', 'release'];
BALM_GIT_FLOW_SCRIPTS = ['build:test', 'build:release'];
```- Method 2:
```js
BALM_GIT_FLOW_RELEASE_SCRIPTS = JSON.stringify({
'build:test': ['test-a', 'test-b'],
'build:release': ['release']
});
```## Usage
- `balm-git doctor`: check the project environment
- `balm-git dev []`: create new branch for development from origin main branch
- `balm-git prod`: release process> ⚠️ NOTE: For Windows users, use `balm-git-doctor`, `balm-git-dev` and `balm-git-prod`