Edit the minikube `Makefile`, updating the version number values at the top:
## Bump the version in the Makefile and Update Docs to reflect this
*`VERSION_MINOR` (and `VERSION_MAJOR`, `VERSION_BUILD` as necessary)
*`ISO_VERSION` (only update this if there is a new ISO release)
See [this PR](https://github.com/kubernetes/minikube/pull/165) for an example.
## Run Local Integration Test
##Send an initial commit with the Makefile change:
With the updated Makefile, run the integration tests and ensure that all tests pass:
Send a PR for the Makefile change and wait until it is merged. Once the commit is merged, continue.
```shell
env TEST_ARGS="-minikube-start-args=--vm-driver=kvm2" make integration
```
## Build the Release
## Ad-Hoc testing of other platforms
Run this command:
If there are supported platforms which do not have functioning Jenkins workers (Windows), you may use the following to build a sanity check:
```shell
BUILD_IN_DOCKER=y make cross checksum
```
## Add the version to the releases.json file
## Send out Makefile PR
Add an entry **to the top** of deploy/minikube/releases.json with the **version** and **checksums**.
Send a PR.
This file controls the auto update notifications in minikube.
Only add entries to this file that should be released to all users (no pre-release, alpha or beta releases).
The file must be uploaded to GCS before notifications will go out. That step comes at the end.
This will update users of HEAD to the new ISO.
The schema for this file can be found in deploy/minikube/schema.json.
Please pay attention to test failures, as this is our integration test across platforms. If there are known acceptable failures, please add a PR comment linking to the appropriate issue.
An automated test to verify the schema runs in Travis before each submit.
## Update Release Notes
## Upload to GCS:
Run the following script to update the release notes:
Merge the output into CHANGELOG.md. See [PR#3175](https://github.com/kubernetes/minikube/pull/3175) as an example. Then get the PR submitted.
## Tag the Release
Run a command like this to tag it locally: `git tag -a v0.2.0 -m "0.2.0 Release"`.
Run a command like this to tag it locally: `git tag -a v<version> -m "<version> Release"`.
And run a command like this to push the tag: `git push upstream v<version>`.
## Build the Release
This step uses the git tag to publish new binaries to GCS and create a github release:
And run a command like this to push the tag: `git push upstream v0.2.0`.
* navigate to the minikube "Release" jenkins job
* Ensure that you are logged in (top right)
*`VERSION_MAJOR`, `VERSION_MINOR`, and `VERSION_BUILD` should reflect the values in your Makefile
* For `ISO_SHA256`, run: `gsutil cat gs://minikube/iso/minikube-v<version>.iso.sha256
* Click *Build*
## Create a Release in Github
## Update releases.json
Create a new release based on your tag, like [this one](https://github.com/kubernetes/minikube/releases/tag/v0.2.0).
minikube-bot will send out a PR to update the release checksums at the top of `deploy/minikube/releases.json`. Make sure it is submitted, or hack one together yourself.
Upload the files, and calculated checksums.
This file is used for auto-update notifications, but is not active until releases.json is copied to GCS.
## Upload the releases.json file to GCS
## Upload releases.json to GCS
This step makes the new release trigger update notifications in old versions of Minikube.
@@ -116,11 +107,11 @@ The repository is tracked in this repo under a submodule `installers/linux/arch_
To actually update the package, you should bump the version and update the sha512 checksum. You should also run `makepkg --printsrcinfo > .SRCINFO` to update the srcinfo file. You can edit this manually if you don't have `makepkg` on your machine.
## Release Verification
## Verification
After you've finished the release, run this command from the release commit to verify the release was done correctly:
`make check-release`.
## Update kubernetes.io docs
If there are major changes, please send a PR upstream for this file https://github.com/kubernetes/kubernetes.github.io/blob/master/docs/getting-started-guides/minikube.md in order to keep the getting started guide up to date.
If there are major changes, please send a PR to update the official setup guide: [Running Kubernetes Locally via Minikube](https://kubernetes.io/docs/setup/minikube/)