We use GoReleaser and GitHub workflows for automating the release process. Follow the instructions below for creating a new release.
- Ensure local
mainbranch is up to date withorigin/main:
git fetch --all --tags- Ensure all checks are passing:
make check- Update the
CHANGELOG. Make sure that the format is consistent especially the version heading. We follow semantic versioning for our releases.
You can check if the file format is correct by running release-info for the new version:
go install github.com/sapcc/go-bits/tools/release-info@latest
release-info CHANGELOG.md X.Y.Zwhere X.Y.Z is the version that you are planning to release.
- Commit the updated changelog with message:
Release <version> - Create and push a new Git tag:
git tag vX.Y.Z
git push
git push --tagsImportant
Tags are prefixed with v and the GitHub release workflow is triggered for tags that match the v[0-9]+.[0-9]+.[0-9]+ gh-pattern.