Skip to content

Latest commit

 

History

History
91 lines (74 loc) · 4.02 KB

README.md

File metadata and controls

91 lines (74 loc) · 4.02 KB

release cli 🚀

license Go Report Card Build Status godoc

Release cli is a useful command-line tool for semantic version tags. A semantic version has three parts: major, minor, and patch. For example, for v0.1.2, the major version is 0, the minor version is 1, and the patch version is 2.

It's necessary for example of the Go Modules. For more information read the following article. https://blog.golang.org/using-go-modules

Installation

Install using the "go get" command:

go get github.com/exaring/release-cli/cmd/release

Prebuilt binaries

Clone the repo and then run the makefile

make install

Use

> release -h
NAME:
   release-cli (release tool) - create semantic version tags

USAGE:
   release [global options] command [command options] [arguments...]

VERSION:
   v2.0.0-RC1

DESCRIPTION:
   Release is a useful command line tool for semantic version tags

COMMANDS:
     help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --major                   increase major version part. [$RELEASE_MAJOR]
   --minor                   increase minor version part. [$RELEASE_MINOR]
   --patch                   increase patch version part. This is the default increased part. [$RELEASE_PATCH]
   --pre                     increase release candidate version part. [$RELEASE_PRE]
   -d, --dry                 do not change anything. just print the result. [$DRY_RUN]
   -f, --force               ignore untracked & uncommitted changes. [$FORCE]
   -b value, --branch value  only track tags related to the given branch when creating new version tags. [$ONLY_BRANCH]
   -l value, --log value     specifics the log level of the output [$LOG_LEVEL]
   --help, -h                show help
   --version, -v             print the version

Example

# release the next patch release (default)
> release -l debug
DEBU[0000] Read the directory                           
DEBU[0000] Analyse the git repository                    
DEBU[0000] Detect latest tag of the repository            Tag=v4.2.1 repository=/tmp/dirty-repo
INFO[0000] Create new releasing version                   Tag=v4.2.2
DEBU[0001] Tagging the current repository                 Version=v4.2.2
DEBU[0004] Pushing new tag to the origin repository       Version=v4.2.2
INFO[0004] Release new version                            Version=v4.2.2

# release the next minor version
> release -l debug -minor
DEBU[0000] Read the directory                            
DEBU[0000] Analyse the git repository                    
DEBU[0000] Detect latest tag of the repository            Tag=v4.2.2 repository=/tmp/dirty-repo
INFO[0000] Create new releasing version                   Tag=v4.3.0
DEBU[0001] Tagging the current repository                 Version=v4.3.0
DEBU[0004] Pushing new tag to the origin repository       Version=v4.3.0
INFO[0004] Release new version                            Version=v4.3.0

# release a major pre-release
> release -l debug -major -pre
DEBU[0000] Read the directory                            
DEBU[0000] Analyse the git repository                    
DEBU[0000] Detect latest tag of the repository            Tag=v4.2.1 repository=/tmp/dirty-repo
INFO[0000] Create new releasing version                   Tag=v5.0.0-RC1
DEBU[0001] Tagging the current repository                 Version=v5.0.0-RC1
DEBU[0004] Pushing new tag to the origin repository       Version=v5.0.0-RC1
INFO[0004] Release new version                            Version=v5.0.0-RC1