Skip to main content

Cli tools for manage releases

Project description

# Flying

![PyPI](https://img.shields.io/pypi/v/flying.svg)

## 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 .
```

### 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`

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flying-0.0.6.tar.gz (4.9 kB view details)

Uploaded Source

File details

Details for the file flying-0.0.6.tar.gz.

File metadata

  • Download URL: flying-0.0.6.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for flying-0.0.6.tar.gz
Algorithm Hash digest
SHA256 71fbe48a2150ae6b265f847e88dbad9144bf046593f04f2a361ab00f9070f46f
MD5 ff992b7e49afe027fe62e34a73054cc7
BLAKE2b-256 ebf4bf0d86c583d6e0968d37586feeb47f6c6e78c220c478dfcfb4841ef5506b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page