142 lines
5.9 KiB
Bash
Executable File
142 lines
5.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright 2016 The Kubernetes Authors All rights reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# This script generates the Github Release page and uploads all the binaries/etc to that page
|
|
# This is intended to be run on a new release tag in order to generate the github release page for that release
|
|
|
|
# The script expects the following env variables:
|
|
# VERSION_MAJOR: The major version of the tag to be released.
|
|
# VERSION_MINOR: The minor version of the tag to be released.
|
|
# VERSION_BUILD: The build version of the tag to be released.
|
|
# ISO_SHA256: The sha 256 of the minikube-iso for the current release.
|
|
# GITHUB_TOKEN: The Github API access token. Injected by the Jenkins credential provider.
|
|
|
|
set -e
|
|
export TAGNAME=v${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_BUILD}
|
|
export DEB_VERSION=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_BUILD}
|
|
export RPM_VERSION=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_BUILD}
|
|
|
|
export GITHUB_ORGANIZATION="kubernetes"
|
|
export GITHUB_REPO="minikube"
|
|
export PROJECT_NAME="minikube"
|
|
export DARWIN_SHA256=$(cat out/minikube-darwin-amd64.sha256)
|
|
export LINUX_SHA256=$(cat out/minikube-linux-amd64.sha256)
|
|
export WINDOWS_SHA256=$(cat out/minikube-windows-amd64.exe.sha256)
|
|
|
|
# Description could be moved into file on machine or fetched via URL. Doing this for now as it is the simplest, portable solution.
|
|
# ================================================================================
|
|
export DESCRIPTION="# Minikube ${TAGNAME}
|
|
Minikube is still under active development, and features may change at any time. Release notes are available [here](https://github.com/kubernetes/minikube/blob/${TAGNAME}/CHANGELOG.md).
|
|
|
|
## Distribution
|
|
Minikube is distributed in binary form for Linux, OSX, and Windows systems for the ${TAGNAME} release. Please note that Windows support is currently experimental and may have issues. Binaries are available through GitHub or on Google Cloud Storage. The direct GCS links are:
|
|
[Darwin/amd64](https://storage.googleapis.com/minikube/releases/${TAGNAME}/minikube-darwin-amd64)
|
|
[Linux/amd64](https://storage.googleapis.com/minikube/releases/${TAGNAME}/minikube-linux-amd64)
|
|
[Windows/amd64](https://storage.googleapis.com/minikube/releases/${TAGNAME}/minikube-windows-amd64.exe)
|
|
|
|
## Installation
|
|
### OSX
|
|
\`\`\`shell
|
|
curl -Lo minikube https://storage.googleapis.com/minikube/releases/${TAGNAME}/minikube-darwin-amd64 && chmod +x minikube && sudo cp minikube /usr/local/bin/ && rm minikube
|
|
\`\`\`
|
|
Feel free to leave off \`\`\`sudo cp minikube /usr/local/bin/ && rm minikube\`\`\` if you would like to add minikube to your path manually.
|
|
|
|
Or you can install via homebrew with \`brew cask install minikube\`.
|
|
|
|
### Linux
|
|
\`\`\`shell
|
|
curl -Lo minikube https://storage.googleapis.com/minikube/releases/${TAGNAME}/minikube-linux-amd64 && chmod +x minikube && sudo cp minikube /usr/local/bin/ && rm minikube
|
|
\`\`\`
|
|
Feel free to leave off \`\`\`sudo cp minikube /usr/local/bin/ && rm minikube\`\`\` if you would like to add minikube to your path manually.
|
|
|
|
### Debian Package (.deb) [Experimental]
|
|
Download the \`minikube_${DEB_VERSION}.deb\` file, and install it using \`sudo dpkg -i minikube_${DEB_VERSION}.deb\`
|
|
|
|
### RPM Package (.rpm) [Experimental]
|
|
Download the \`minikube-${RPM_VERSION}.rpm\` file, and install it using \`sudo rpm -i minikube-${RPM_VERSION}.rpm\`
|
|
|
|
### Windows [Experimental]
|
|
Download the \`minikube-windows-amd64.exe\` file, rename it to \`minikube.exe\` and add it to your path.
|
|
|
|
### Windows Installer [Experimental]
|
|
Download the \`minikube-installer.exe\` file, and execute the installer. This will automatically add minikube.exe to your path with an uninstaller available as well.
|
|
|
|
## Usage
|
|
Documentation is available [here](https://github.com/kubernetes/minikube/blob/${TAGNAME}/README.md).
|
|
|
|
## Checksums
|
|
Minikube consists of a binary executable and a VM image in ISO format. To verify the contents of your distribution, you can compare sha256 hashes with these values:
|
|
|
|
\`\`\`
|
|
$ tail -n +1 -- out/*.sha256
|
|
==> out/minikube-darwin-amd64.sha256 <==
|
|
${DARWIN_SHA256}
|
|
|
|
==> out/minikube-linux-amd64.sha256 <==
|
|
${LINUX_SHA256}
|
|
|
|
==> out/minikube-windows-amd64.exe.sha256 <==
|
|
${WINDOWS_SHA256}
|
|
\`\`\`
|
|
|
|
### ISO
|
|
\`\`\`shell
|
|
$ openssl sha256 minikube.iso
|
|
SHA256(minikube.iso)=
|
|
${ISO_SHA256}
|
|
\`\`\`
|
|
"
|
|
# ================================================================================
|
|
|
|
# Deleting release from github before creating new one
|
|
github-release delete --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} || true
|
|
|
|
# Creating a new release in github
|
|
github-release release \
|
|
--user ${GITHUB_ORGANIZATION} \
|
|
--repo ${GITHUB_REPO} \
|
|
--tag ${TAGNAME} \
|
|
--name "${TAGNAME}" \
|
|
--description "${DESCRIPTION}"
|
|
|
|
# Uploading the files into github
|
|
FILES_TO_UPLOAD=(
|
|
'minikube-linux-amd64'
|
|
'minikube-linux-amd64.sha256'
|
|
'minikube-darwin-amd64'
|
|
'minikube-darwin-amd64.sha256'
|
|
'minikube-windows-amd64.exe'
|
|
'minikube-windows-amd64.exe.sha256'
|
|
'minikube-installer.exe'
|
|
"minikube_${DEB_VERSION}.deb"
|
|
"minikube-${RPM_VERSION}.rpm"
|
|
'docker-machine-driver-kvm2'
|
|
'docker-machine-driver-kvm2.sha256'
|
|
'docker-machine-driver-hyperkit'
|
|
'docker-machine-driver-hyperkit.sha256'
|
|
)
|
|
|
|
for UPLOAD in "${FILES_TO_UPLOAD[@]}"
|
|
do
|
|
n=0
|
|
until [ $n -ge 5 ]
|
|
do
|
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name $UPLOAD --file out/$UPLOAD && break
|
|
n=$[$n+1]
|
|
sleep 15
|
|
done
|
|
done
|