Releasing Minishift
Overview
The following sections describe how to release Minishift either via automated job or manually.
Preparing the GitHub Milestone
Verify the milestone you want to release:
Move remaining open issues into the next milestone.
Review resolved/closed issues and make sure they are classified correctly.
Check and update the resolution of the issues. For example, issues with merged pull requests should be labeled as resolution/done.
- Close the milestone.
Automated Release
An automated release can be performed by triggering CI job as:
$ make ci_release API_KEY=<api-key> RELEASE_VERSION=<version>
where
api-key
: Minishift CentOS CI API keyversion
: The expected release version (without ‘v’). For example, 1.0.0.
Once triggered you can follow the release process here.
The automated release performs:
If the CI release job is failing for a known reason then you can skip the integration tests by changing the |
The systemtray bits needs to uploaded separately, which can be performed by triggering CI job as:
$ make ci_release_systemtray CIRCLECI_API_KEY=<api-key> RELEASE_VERSION=<version>
where
api-key
: Minishift Circle CI API keyversion
: The expected release version (without ‘v’). For example, 1.0.0.
Manual Release
Prerequisites
You must have a GitHub personal access token defined in your environment as
GITHUB_ACCESS_TOKEN
.You must set environment variable
GITHUB_USER
as minishift.To create the systemtray binaries,
Xcode
must be installed.
Cutting the Release
Run the required checks:
$ make prerelease
Bump the Minishift version in the Makefile.
Commit and push your changes with a message of the form
cut v1.0.0
.Create binaries and upload them to GitHub (this will also tag the release):
$ make release
Triggering the Documentation Build
Use the following to trigger the documentation build:
$ export API_KEY=<api-key>
$ curl -H "$(curl --user minishift:$API_KEY 'https://ci.centos.org//crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')" -X POST https://ci.centos.org/job/minishift-docs/build --user "minishift:$API_KEY"
This will build minishift-adoc.tar, which will be consumed by docs.okd.io during the next nightly build. For more information, see Writing and Publishing Minishift Documentation.
Post-Release Tasks
The systemtray bits also needs to be uploaded to the release in Github. Create Minishift binaries with systemtray and upload them to Github. The following command works only in macOS, please refer the Prerequisites for more information.
$ make release_systemtray
As part of the release process we also send a release announcement and edit the GitHub release page.
For the latter we usually add a categorized list of closed issues as well as some release highlights (most often taken from the release announcement).
If you have jq
installed on your machine, you can use the issue-list.sh script to generate the Markdown needed for adding the issue list. For example:
$ cd scripts/release
$ ./issue-list.sh -r minishift -m 9
Updating the brew cask
To update the Minishift cask manually, we need to do the following tasks:
Fork the homebrew-cask repository and clone it locally if not already done.
Update the minishift.rb file with latest version, sha256sum and checkpoint.
Push the changes to the forked repository.
And finally open a pull request in the homebrew-cask repository.
You can also use the brew-cask.sh script to update minishift.rb with latest version information. For example:
$ cd scripts/release
$ ./brew-cask.sh -r /path/to/homebrew-cask-repo -v 1.13.0