On every new tag matching v*
pushed to the repository a Github Action Release
Workflow is executed.
The Github Actions release workflow
uses goreleaser
(configuration
file) and automatically creates/pushes:
- Release artifacts for
govc
andvcsim
to the release page, includingLICENSE.txt
,README
andCHANGELOG
- Docker images for
vmware/govc
andvmware/vcsim
to Docker Hub - Source code
$ git checkout master
$ git fetch -avp
$ git diff master origin/master
# if your local and remote branches diverge run
$ git pull origin/master
origin
to point to the remote
https://github.com/vmware/govmomi
, respectively
[email protected]:vmware/govmomi
.
This variable is used and referenced in the subsequent commands. Set it to the upcoming release version, adhering to the semantic versioning scheme:
$ export RELEASE_VERSION=v0.25.0
$ git tag -a ${RELEASE_VERSION} -m "Release ${RELEASE_VERSION}"
# Will trigger Github Actions Release Workflow
$ git push origin refs/tags/${RELEASE_VERSION}
After pushing a new release tag, the status of the workflow can be inspected here.
After a successful release, update the CHANGELOG. The
CHANGELOG.md
is generated with git-chglog
and requires the release tag (see
above) to be created before updating the CHANGELOG.md
file.
To avoid inconsistencies with the
release workflow, please use the same
Docker image to create the CHANGELOG.md
.
$ IMAGE=quay.io/git-chglog/git-chglog
$ IMAGE_SHA=998e89dab8dd8284cfff5f8cfb9e9af41fe3fcd4671f2e86a180e453c20959e3
$ docker run --rm -v $PWD:/workdir ${IMAGE}@sha256:${IMAGE_SHA} -o CHANGELOG.md v0.1.0..${RELEASE_VERSION}
⌚ Generating changelog ...
✨ Generate of "CHANGELOG.md" is completed! (8.4079146s)
Verify the modified file and create a PR following the usual
CONTRIBUTING guidelines to commit the changes in
CHANGELOG.md
.
CHANGELOG
PR should follow this
convention:
"Update CHANGELOG for ${RELEASE_VERSION}"
.
These commit messages are then excluded from the CHANGELOG.md
.