Overview

The following sections describe how to release Minishift either via automated job or manually.

Preparing the GitHub Milestone

  1. 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 a merged pull requests should be labeled as resolution/done.

  2. Close 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 key

  • version : Expected release version. Eg : 1.0.0 (without 'v')

Once triggered you can follow the release process here.

The automated release performs:

Manual Release

Prerequisites

Cutting the Release

  1. Run the required checks:

    $ make prerelease
  2. Bump the Minishift version in the Makefile.

  3. Commit and push your changes with a message of the form cut v1.0.0.

  4. Create binaries and upload them to GitHub (this will also tag the release):

    $ make release

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.openshift.org during the next nightly build. For more information, see Writing and Publishing Minishift Documentation.

Post-Release Tasks

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