https://github.com/joway/flying
Make release easy again .
https://github.com/joway/flying
Last synced: about 1 year ago
JSON representation
Make release easy again .
- Host: GitHub
- URL: https://github.com/joway/flying
- Owner: joway
- Created: 2018-05-12T09:45:26.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2021-07-20T21:14:22.000Z (almost 5 years ago)
- Last Synced: 2025-03-25T07:51:09.199Z (about 1 year ago)
- Language: Python
- Homepage:
- Size: 19.5 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Flying

## Purpose
Make release easy again .
### Features
1. git tag
2. npm publish
3. docker build && push
4. pypi build && upload
## Example
[https://github.com/joway/flying-example](https://github.com/joway/flying-example)
## Install
```shell
pip install -U flying
```
## Usage
### init
Create `flying.json` template
```shell
flying init .
```
### commit
Beautify git commit message
```shell
flying commit [commit_type] [commit_message]
eg:
flying commit feature 'some feature description'
==>
git commit -m '[✨feature]: some feature description'
```
#### commit-type choice:
```json
{
"feature": "✨feature",
"bugfix": "🐛bugfix",
"hotfix": "🚑hotfix",
"docs": "📚docs",
"style": "🎨style",
"refactor": "🏗️refactor",
"test": "✅test",
"chore": "🔨chore",
"release": "🎉release",
"text": "📝text",
"addlog": "🔉add log",
"dellog": "🔇delete log",
}
```
### release
Release current version which set in flying.json .
```shell
flying release
```
Automatically upgrade version (+0.0.1)
```shell
flying release --upgrade
```
## Configuration
### Quick View
Template : `flying.json`
```json
{
"name": "flying-example",
"version": "0.0.8",
"version_prefix": "v",
"conditions": [
"git status | grep \"nothing to commit, working tree clean\""
],
"pre_release": [
"cat ./flying.json"
],
"git": {
"enable": true,
"remote": "origin",
},
"docker": {
"enable": true,
"namespace": "joway/flying-example",
"dkf_path": "./Dockerfile"
},
"npm": {
"enable": true,
"package_path": "./package.json"
},
"pypi": {
"enable": false,
"build_cmd": "python setup.py sdist",
"upload_cmd": "twine upload dist/*"
}
}
```
### version
`version_prefix + version` will be set as a tag for git and docker
### conditions
`conditions` is a shell commonds list , flying will check if every commond has a non-empty out . If not , it will exit without any release .
For Example , when you set :
```json
"conditions": [
"git status | grep \"nothing to commit, working tree clean\""
],
```
If your project has any un-commited file changes , it will be blocked .
### pre_release
`pre_release` is a shell commonds list , it will be exec before release jobs start .
For example , you can set this line if you are using webpack :
```json
"pre_release": ["npm run build"]
```
### git
Push new version tag to git remote server .
### docker
- `namespace`: For example , set it to 'joway/flying-example' , it will push docker image as `joway/flying-example:vx.x.x` (if version_prefix = "v") .
- `dkf_path` : Dockerfile's path relative to the project root dir .
### npm
- `package_path`: package.json's path relative to the project root dir .
- `upgrade_version_enable`: if set `true` , it will automatically upgrade `package.json[version]` when exec `flying release --upgrade`
### pypi
Custom your own build && upload commond by set `build_cmd` and `upload_cmd`