Warning! Pre-release is an experimental feature. The behaviour is likely to change.

Pre-releases can be created when branches are divided to two groups by specifying GSG_RELEASE_BRANCHES environment variable, or the corresponding command line option --release-branches.

GSG_RELEASE_BRANCHES takes a list of branch names. Those branches will produce basic semantic release versions, like v1.2.3. All other branches will produce pre-release versions, eg. v2.0.0-alpha.1.

Customize version scheme

The form of the pre-release can be customized by specifying templates for the pre-release version and build metadata. Both options accept comma separated lists of identifier templates:

Option CLI flag Environment variable
pre-release template --pre-tmpl GSG_PRE_TMPL
build metadata template --build-tmpl GSG_BUILD_TMPL

The default value for GSG_PRE_TMPL is

{{ (env "CI_COMMIT_REF_SLUG") }},{{ seq }}

and it will produce versions of form v1.2.3-branchname.1


Templates are expanded using go text/template.

Available functions:

Function Description
func env(string) string return value of environment variable
func commitTS() time.Time time of the commit being released
func seq() (string, error) generate a sequence number (not available for build metadata)