Semantic release for GitLab
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 version from 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
...)
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.
semantic-release
Comparison toThe key difference of go-semrel-gitlab
and semantic-release
is that they approach the problem from different angles:
-
semantic-release
has a pre-defined, configurable workflow which was originally designed for publishing npm packages from Github, but now there are plugins for GitLab, DockerHub, and more. -
go-semrel-gitlab
leaves workflow coordination to Gitlab CI, provides few (hopefully simple) commands to automate the versioning and gitlab related tasks of a release, and tries to minimize the constraints it imposes to the pipeline configuration.
More information
TODO
- more documentation
- configurable release notes