Go packages are basically tags in GitHub, so we need workflows that handle preparing and publishing bugfix and release versions. Bugfix versions are based on a previous release version, and contain only the fix (or fixes), but no new features.
release.yaml
- take release version as input, fail if patch version is not
0
- create + push tag on
main
- create GH Release
prepare_bugfix.yaml
- checkout tag, read version
X.Y.Z
- compute patch version
N = Z+1, create branch named bugfix/X.Y.N
- push new branch
publish_bugfix.yaml
- take branch as input, fail if
main is selected
- run build + tests
- create + push tag on branch
- create GH Release
Note: updating pkg.go.dev manually is not needed, that happens automatically
Go packages are basically tags in GitHub, so we need workflows that handle preparing and publishing bugfix and release versions. Bugfix versions are based on a previous release version, and contain only the fix (or fixes), but no new features.
release.yaml0mainprepare_bugfix.yamlX.Y.ZN = Z+1, create branch namedbugfix/X.Y.Npublish_bugfix.yamlmainis selectedNote: updating pkg.go.dev manually is not needed, that happens automatically