Skip to content

Release workflow

flowerinthenight edited this page Sep 14, 2017 · 15 revisions

We are using GitHub Releases for our release workflow. GitHub Releases are based on git tags.

CI builders

Workflow

We only use lightweight tags for releases. This is because as of this writing, AppVeyor cannot start a build when you use annotated tags. See this discussion for more information.

For the tag name, we follow the format v{major}.{minor}.{patch}. For example:

v1.0.0
v1.2.3-rc
v1.2.3-beta

Before starting the release workflow, be sure to update the version information in cmd/version.go. After that, the release can be done like this:

$ git checkout master
$ git pull
$ git tag v1.0.0
$ git push --tags

This will start the CI builds. If all builds are successful, binaries for Windows, OSX and Linux will be uploaded to the tagged release, using the tag name as the release title. Appveyor sets the release description (it completes ahead of Travis) as draft. Travis will only upload the remaining artifacts to the same release created by Appveyor, setting it as an actual release. The last part of the process is to edit the release notes (maybe add the list of bug fixes), although this is optional.

Clone this wiki locally