Skip to content
Snippets Groups Projects
Select Git revision
  • mr-opt-in
  • linktype
  • master default
  • pre-release-version-bump
  • tagprefix
  • uploaded-file
  • v0.22.0-mr-opt-in.3
  • v0.22.0-mr-opt-in.2
  • v0.22.0-mr-opt-in.1
  • v0.21.1
  • v0.21.0
  • v0.21.0-list-other.1
  • v0.20.4
  • v0.20.3
  • v0.20.2
  • v0.20.2-httpproxy.1
  • v0.20.1
  • v0.20.0
  • v0.20.0-releases-api.3
  • v0.20.0-releases-api.2
  • v0.20.0-releases-api.1
  • v0.19.1
  • v0.19.1-go111modules.2
  • v0.19.1-go111modules.1
  • v0.19.0
  • v0.18.0
26 results

go-semrel-gitlab

  • Clone with SSH
  • Clone with HTTPS
  • 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.

    Comparison to semantic-release

    The 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