Adding Jenkins files to /hack/jenkins After this commit goes throught, changes to jenkins should be made to use the scripts in this /hack/jenkins folder directly
parent
d8e1f20751
commit
602fd82bd3
|
@ -0,0 +1,77 @@
|
||||||
|
#!/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 creates the localkube binary for a specified kubernetes Github tag (ex: v1.4.0)
|
||||||
|
|
||||||
|
# The script expects the following env variabls:
|
||||||
|
# K8S_VERSION: The version of kubernetes to build localkube with
|
||||||
|
# COMMIT: The commit to build minikube with
|
||||||
|
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
export GOPATH=$PWD
|
||||||
|
|
||||||
|
cd $GOPATH/src/k8s.io/minikube
|
||||||
|
git checkout origin/$COMMIT
|
||||||
|
echo "======= Restoring Minikube Deps ======="
|
||||||
|
godep restore ./...
|
||||||
|
|
||||||
|
cd $GOPATH/src/k8s.io/kubernetes
|
||||||
|
git fetch --tags
|
||||||
|
|
||||||
|
echo "======= Checking out Kubernetes ${K8S_VERSION} ======="
|
||||||
|
git checkout ${K8S_VERSION}
|
||||||
|
godep restore ./...
|
||||||
|
|
||||||
|
echo "======= Saving Kubernetes ${K8S_VERSION} Dependency======="
|
||||||
|
cd $GOPATH/src/k8s.io/minikube
|
||||||
|
rm -rf Godeps/ vendor/
|
||||||
|
godep save ./...
|
||||||
|
|
||||||
|
# Test and make for all platforms
|
||||||
|
make test cross
|
||||||
|
|
||||||
|
# Build the e2e test target for Darwin and Linux. We don't run tests on Windows yet.
|
||||||
|
# We build these on Linux, but run the tests on different platforms.
|
||||||
|
# This makes it easier to provision slaves, since they don't need to have a go toolchain.'
|
||||||
|
GOPATH=$(pwd)/_gopath GOOS=darwin GOARCH=amd64 go test -c k8s.io/minikube/test/integration --tags=integration -o out/e2e-darwin-amd64
|
||||||
|
GOPATH=$(pwd)/_gopath GOOS=linux GOARCH=amd64 go test -c k8s.io/minikube/test/integration --tags=integration -o out/e2e-linux-amd64
|
||||||
|
cp -r test/integration/testdata out/
|
||||||
|
|
||||||
|
# Upload to localkube builds
|
||||||
|
gsutil cp out/localkube gs://minikube/k8sReleases/${K8S_VERSION}+testing/localkube-linux-amd64
|
||||||
|
|
||||||
|
# Upload the SHA
|
||||||
|
openssl sha256 out/localkube | awk '{print $2}' > out/localkube.sha256
|
||||||
|
gsutil cp out/localkube.sha256 gs://minikube/k8sReleases/${K8S_VERSION}+testing/localkube-linux-amd64.sha256
|
||||||
|
|
||||||
|
|
||||||
|
# Upload the version of minikube that we used
|
||||||
|
gsutil cp -r out/* gs://minikubetest/localkubetest/${COMMIT}
|
||||||
|
|
||||||
|
make gendocs
|
||||||
|
|
||||||
|
git config user.name "minikube-bot"
|
||||||
|
git config user.email "minikube-bot@google.com"
|
||||||
|
|
||||||
|
git checkout -b "jenkins-${K8S_VERSION}"
|
||||||
|
|
||||||
|
git status
|
||||||
|
git add -A
|
||||||
|
git commit -m "Upgrade to k8s version ${K8S_VERSION}"
|
||||||
|
|
|
@ -14,6 +14,9 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
# This script builds the minikube binary for all 3 platforms and uploads them.
|
||||||
|
# This is to done as part of the CI tests for Github PRs
|
||||||
|
|
||||||
# The script expects the following env variabls:
|
# The script expects the following env variabls:
|
||||||
# ghprbPullId: The pull request ID, injected from the ghpbr plugin.
|
# ghprbPullId: The pull request ID, injected from the ghpbr plugin.
|
||||||
# ghprbActualCommit: The commit hash, injected from the ghpbr plugin.
|
# ghprbActualCommit: The commit hash, injected from the ghpbr plugin.
|
||||||
|
@ -28,6 +31,7 @@ make cross
|
||||||
# This makes it easier to provision slaves, since they don't need to have a go toolchain.'
|
# This makes it easier to provision slaves, since they don't need to have a go toolchain.'
|
||||||
GOPATH=$(pwd)/_gopath GOOS=darwin GOARCH=amd64 go test -c k8s.io/minikube/test/integration --tags=integration -o out/e2e-darwin-amd64
|
GOPATH=$(pwd)/_gopath GOOS=darwin GOARCH=amd64 go test -c k8s.io/minikube/test/integration --tags=integration -o out/e2e-darwin-amd64
|
||||||
GOPATH=$(pwd)/_gopath GOOS=linux GOARCH=amd64 go test -c k8s.io/minikube/test/integration --tags=integration -o out/e2e-linux-amd64
|
GOPATH=$(pwd)/_gopath GOOS=linux GOARCH=amd64 go test -c k8s.io/minikube/test/integration --tags=integration -o out/e2e-linux-amd64
|
||||||
|
GOPATH=$(pwd)/_gopath GOOS=windows GOARCH=amd64 go test -c k8s.io/minikube/test/integration --tags=integration -o out/e2e-windows-amd64.exe
|
||||||
cp -r test/integration/testdata out/
|
cp -r test/integration/testdata out/
|
||||||
|
|
||||||
# Upload everything we built to Cloud Storage.
|
# Upload everything we built to Cloud Storage.
|
|
@ -22,12 +22,12 @@
|
||||||
# The script expects the following env variabls:
|
# The script expects the following env variabls:
|
||||||
# ghprbPullId: The pull request ID, injected from the ghpbr plugin.
|
# ghprbPullId: The pull request ID, injected from the ghpbr plugin.
|
||||||
# ghprbActualCommit: The commit hash, injected from the ghpbr plugin.
|
# ghprbActualCommit: The commit hash, injected from the ghpbr plugin.
|
||||||
# access_token: The Github API access tokenm injected by the Jenkins credential provider.
|
# access_token: The Github API access token. Injected by the Jenkins credential provider.
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
set +x
|
set +x
|
||||||
|
|
||||||
for job in "OSX-Virtualbox" "OSX-XHyve"; do
|
for job in "OSX-Virtualbox" "OSX-XHyve" "Windows-hyperv"; do
|
||||||
target_url="https://storage.googleapis.com/minikube-builds/logs/${ghprbPullId}/${job}.txt"
|
target_url="https://storage.googleapis.com/minikube-builds/logs/${ghprbPullId}/${job}.txt"
|
||||||
curl "https://api.github.com/repos/kubernetes/minikube/statuses/${ghprbActualCommit}?access_token=$access_token" \
|
curl "https://api.github.com/repos/kubernetes/minikube/statuses/${ghprbActualCommit}?access_token=$access_token" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/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 runs the integration tests on an OSX machine for the Virtualbox Driver
|
||||||
|
|
||||||
|
# The script expects the following env variabls:
|
||||||
|
# MINIKUBE_LOCATION: GIT_COMMIT from upstream build.
|
||||||
|
# COMMIT: Actual commit ID from upstream build
|
||||||
|
# EXTRA_BUILD_ARGS (optional): Extra args to be passed into the minikube integrations tests
|
||||||
|
# access_token: The Github API access token. Injected by the Jenkins credential provider.
|
||||||
|
|
||||||
|
|
||||||
|
set -e
|
||||||
|
mkdir -p out
|
||||||
|
gsutil -m cp -r gs://minikube-builds/${MINIKUBE_LOCATION}/* out/
|
||||||
|
chmod +x out/e2e-darwin-amd64
|
||||||
|
chmod +x out/minikube-darwin-amd64
|
||||||
|
cp -r out/testdata ./
|
||||||
|
|
||||||
|
|
||||||
|
./out/minikube-darwin-amd64 delete || true
|
||||||
|
|
||||||
|
# Allow this to fail, we'll switch on the return code below.
|
||||||
|
set +e
|
||||||
|
out/e2e-darwin-amd64 -minikube-args="--vm-driver=virtualbox --cpus=4 ${EXTRA_BUILD_ARGS}" -test.v -test.timeout=30m -binary=out/minikube-darwin-amd64
|
||||||
|
result=$?
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [[ $result -eq 0 ]]; then
|
||||||
|
status="success"
|
||||||
|
else
|
||||||
|
status="failure"
|
||||||
|
fi
|
||||||
|
|
||||||
|
set +x
|
||||||
|
target_url="https://storage.googleapis.com/minikube-builds/logs/${MINIKUBE_LOCATION}/OSX-Virtualbox.txt"
|
||||||
|
curl "https://api.github.com/repos/kubernetes/minikube/statuses/${COMMIT}?access_token=$access_token" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-X POST \
|
||||||
|
-d "{\"state\": \"$status\", \"description\": \"Jenkins\", \"target_url\": \"$target_url\", \"context\": \"OSX-VirtualBox\"}"
|
||||||
|
set -x
|
||||||
|
|
||||||
|
exit $result
|
|
@ -0,0 +1,86 @@
|
||||||
|
#!/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 runs the integration tests on an OSX machine for the xhyve Driver
|
||||||
|
|
||||||
|
# The script expects the following env variabls:
|
||||||
|
# MINIKUBE_LOCATION: GIT_COMMIT from upstream build.
|
||||||
|
# COMMIT: Actual commit ID from upstream build
|
||||||
|
# access_token: The Github API access token. Injected by the Jenkins credential provider.
|
||||||
|
|
||||||
|
|
||||||
|
set -e
|
||||||
|
mkdir -p out
|
||||||
|
gsutil -m cp -r gs://minikube-builds/${MINIKUBE_LOCATION}/* out/
|
||||||
|
chmod +x out/e2e-darwin-amd64
|
||||||
|
chmod +x out/minikube-darwin-amd64
|
||||||
|
cp -r out/testdata ./
|
||||||
|
|
||||||
|
|
||||||
|
./out/minikube-darwin-amd64 delete || true
|
||||||
|
|
||||||
|
# Allow this to fail, we'll switch on the return code below.
|
||||||
|
set +e
|
||||||
|
out/e2e-darwin-amd64 -minikube-args="--vm-driver=virtualbox --cpus=4 ${EXTRA_BUILD_ARGS}" -test.v -test.timeout=30m -binary=out/minikube-darwin-amd64
|
||||||
|
result=$?
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [[ $result -eq 0 ]]; then
|
||||||
|
status="success"
|
||||||
|
else
|
||||||
|
status="failure"
|
||||||
|
fi
|
||||||
|
|
||||||
|
set +x
|
||||||
|
target_url="https://storage.googleapis.com/minikube-builds/logs/${MINIKUBE_LOCATION}/OSX-Virtualbox.txt"
|
||||||
|
curl "https://api.github.com/repos/kubernetes/minikube/statuses/${COMMIT}?access_token=$access_token" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-X POST \
|
||||||
|
-d "{\"state\": \"$status\", \"description\": \"Jenkins\", \"target_url\": \"$target_url\", \"context\": \"OSX-VirtualBox\"}"
|
||||||
|
set -x
|
||||||
|
|
||||||
|
exit $result
|
||||||
|
|
||||||
|
mkdir -p out
|
||||||
|
gsutil -m cp -r gs://minikube-builds/${MINIKUBE_LOCATION}/* out/
|
||||||
|
chmod +x out/e2e-darwin-amd64
|
||||||
|
chmod +x out/minikube-darwin-amd64
|
||||||
|
cp -r out/testdata ./
|
||||||
|
|
||||||
|
|
||||||
|
./out/minikube-darwin-amd64 delete || true
|
||||||
|
|
||||||
|
set +e
|
||||||
|
out/e2e-darwin-amd64 -minikube-args="--vm-driver=xhyve --cpus=4" -test.v -test.timeout=30m -binary=out/minikube-darwin-amd64
|
||||||
|
result=$?
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [[ $result -eq 0 ]]; then
|
||||||
|
status="success"
|
||||||
|
else
|
||||||
|
status="failure"
|
||||||
|
fi
|
||||||
|
|
||||||
|
set +x
|
||||||
|
target_url="https://storage.googleapis.com/minikube-builds/logs/${MINIKUBE_LOCATION}/OSX-XHyve.txt"
|
||||||
|
curl "https://api.github.com/repos/kubernetes/minikube/statuses/${COMMIT}?access_token=$access_token" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-X POST \
|
||||||
|
-d "{\"state\": \"$status\", \"description\": \"Jenkins\", \"target_url\": \"$target_url\", \"context\": \"OSX-XHyve\"}"
|
||||||
|
set -x
|
||||||
|
|
||||||
|
exit $result
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/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 runs the integration tests on an OSX machine for the xhyve Driver
|
||||||
|
|
||||||
|
# The script expects the following env variabls:
|
||||||
|
# K8S_VERSION: GIT_COMMIT from upstream build.
|
||||||
|
# BUCKET: The GCP bucket the build files should be uploaded to.
|
||||||
|
|
||||||
|
gsutil mv gs://${BUCKET}/k8sReleases/${K8S_VERSION}+testing/localkube-linux-amd64 gs://${BUCKET}/k8sReleases/${K8S_VERSION}/localkube-linux-amd64
|
||||||
|
gsutil mv gs://${BUCKET}/k8sReleases/${K8S_VERSION}+testing/localkube-linux-amd64.sha256 gs://${BUCKET}/k8sReleases/${K8S_VERSION}/localkube-linux-amd64.sha256
|
|
@ -0,0 +1,119 @@
|
||||||
|
#!/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 variabls:
|
||||||
|
# VERSION_MAJOR: The the major version of the tag to be released.
|
||||||
|
# VERSION_MINOR: The the minor version of the tag to be released.
|
||||||
|
# VERSION_BUILD: The 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 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 distrubuted 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 mv minikube /usr/local/bin/
|
||||||
|
\`\`\`
|
||||||
|
Feel free to leave off the \`\`\`sudo mv minikube /usr/local/bin\`\`\` if you would like to add minikube to your path manually.
|
||||||
|
|
||||||
|
### Linux
|
||||||
|
\`\`\`shell
|
||||||
|
curl -Lo minikube https://storage.googleapis.com/minikube/releases/${TAGNAME}/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
|
||||||
|
\`\`\`
|
||||||
|
Feel free to leave off the \`\`\`sudo mv minikube /usr/local/bin\`\`\` 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\`
|
||||||
|
|
||||||
|
### 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
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-linux-amd64" --file out/minikube-linux-amd64
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-linux-amd64.sha256" --file out/minikube-linux-amd64.sha256
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-darwin-amd64" --file out/minikube-darwin-amd64
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-darwin-amd64.sha256" --file out/minikube-darwin-amd64.sha256
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-windows-amd64" --file out/minikube-windows-amd64.exe
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-windows-amd64.sha256" --file out/minikube-windows-amd64.exe.sha256
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-installer.exe" --file out/minikube-installer.exe
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube_${DEB_VERSION}.deb" --file out/minikube_${DEB_VERSION}.deb
|
||||||
|
|
|
@ -0,0 +1,119 @@
|
||||||
|
#!/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 variabls:
|
||||||
|
# VERSION_MAJOR: The the major version of the tag to be released.
|
||||||
|
# VERSION_MINOR: The the minor version of the tag to be released.
|
||||||
|
# VERSION_BUILD: The 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 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 distrubuted 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 mv minikube /usr/local/bin/
|
||||||
|
\`\`\`
|
||||||
|
Feel free to leave off the \`\`\`sudo mv minikube /usr/local/bin\`\`\` if you would like to add minikube to your path manually.
|
||||||
|
|
||||||
|
### Linux
|
||||||
|
\`\`\`shell
|
||||||
|
curl -Lo minikube https://storage.googleapis.com/minikube/releases/${TAGNAME}/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
|
||||||
|
\`\`\`
|
||||||
|
Feel free to leave off the \`\`\`sudo mv minikube /usr/local/bin\`\`\` 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\`
|
||||||
|
|
||||||
|
### 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
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-linux-amd64" --file out/minikube-linux-amd64
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-linux-amd64.sha256" --file out/minikube-linux-amd64.sha256
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-darwin-amd64" --file out/minikube-darwin-amd64
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-darwin-amd64.sha256" --file out/minikube-darwin-amd64.sha256
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-windows-amd64" --file out/minikube-windows-amd64.exe
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-windows-amd64.sha256" --file out/minikube-windows-amd64.exe.sha256
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube-installer.exe" --file out/minikube-installer.exe
|
||||||
|
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${TAGNAME} --name "minikube_${DEB_VERSION}.deb" --file out/minikube_${DEB_VERSION}.deb
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
# $ErrorActionPreference = "Stop"
|
||||||
|
mkdir -p out
|
||||||
|
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/* out/
|
||||||
|
# chmod +x out/e2e-windows-amd64.exe
|
||||||
|
# chmod +x out/minikube-windows-amd64.exe
|
||||||
|
cp -r out/testdata ./
|
||||||
|
|
||||||
|
|
||||||
|
./out/minikube-windows-amd64.exe delete # || true
|
||||||
|
|
||||||
|
# Allow this to fail, we'll switch on the return code below.
|
||||||
|
# set +e
|
||||||
|
out/e2e-windows-amd64.exe --% -minikube-args="--vm-driver=hyperv --cpus=4 $env:EXTRA_BUILD_ARGS" -test.v -test.timeout=30m -binary=out/minikube-windows-amd64.exe
|
||||||
|
result=$?
|
||||||
|
# set -e
|
||||||
|
|
||||||
|
# If the last exit code was non-zero, return w/ error
|
||||||
|
If (-Not $?) {exit $?}
|
||||||
|
|
||||||
|
# if [[ $result -eq 0 ]]; then
|
||||||
|
# status="success"
|
||||||
|
# else
|
||||||
|
# status="failure"
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# set +x
|
||||||
|
# target_url="https://storage.googleapis.com/minikube-builds/logs/$env:MINIKUBE_LOCATION/OSX-hyperv.txt"
|
||||||
|
# curl "https://api.github.com/repos/kubernetes/minikube/statuses/$env:COMMIT?access_token=$access_token" \
|
||||||
|
# -H "Content-Type: application/json" \
|
||||||
|
# -X POST \
|
||||||
|
# -d "{\"state\": \"$status\", \"description\": \"Jenkins\", \"target_url\": \"$target_url\", \"context\": \"OSX-hyperv\"}"
|
||||||
|
# set -x
|
||||||
|
|
||||||
|
# exit $result
|
Loading…
Reference in New Issue