We use GoReleaser and GitHub workflows for automating the release process. Follow the instructions below for creating a new release.
-
Ensure local
master
branch is up to date withorigin/master
:git fetch --tags && git pull --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.Z
where
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 --tags
[!IMPORTANT] Tags are prefixed with
v
and the GitHub release workflow is triggered for tags that match thev[0-9]+.[0-9]+.[0-9]+
gh-pattern.