Automate version management

go-semrel-gitlab is a set of commands you can use to compose your automated release workflow.

it’s designed to run in GitLab CI pipeline

it’s available as a docker image or a single binary, so it’s easy to include in your pipeline

The executable name is release , and it can

determine the next semantic version using the previous version and commit messages

create/update changelog

create tags with release notes

attach files to release notes

commit version bumps (eg. package.json, pom.xml, CHANGELOG.md …)

Other features include.

customizable commit message types

easy transitioning from initial development

pre-releases (experimental)

This project was inspired by semantic-release. You should read it’s excellent documentation to learn about the principles and benefits of release automation. Pay special attention to commit message format. go-semrel-gitlab depends on that, too. Also check out Conventional Commits specification which is a more recent description of the same pattern.

Comparison to semantic-release

The key difference of go-semrel-gitlab and semantic-release is that they approach the problem from different angles: