diff --git a/hack/jenkins/localkube.sh b/hack/jenkins/localkube.sh new file mode 100644 index 0000000000..96c9c378b0 --- /dev/null +++ b/hack/jenkins/localkube.sh @@ -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}" + diff --git a/hack/jenkins/cross_build.sh b/hack/jenkins/minikube_cross_build_and_upload.sh similarity index 85% rename from hack/jenkins/cross_build.sh rename to hack/jenkins/minikube_cross_build_and_upload.sh index e875583b3b..1c2d3a1786 100644 --- a/hack/jenkins/cross_build.sh +++ b/hack/jenkins/minikube_cross_build_and_upload.sh @@ -14,6 +14,9 @@ # See the License for the specific language governing permissions and # 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: # ghprbPullId: The pull request ID, 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.' 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=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/ # Upload everything we built to Cloud Storage. diff --git a/hack/jenkins/set_pending.sh b/hack/jenkins/minikube_set_pending.sh similarity index 92% rename from hack/jenkins/set_pending.sh rename to hack/jenkins/minikube_set_pending.sh index 234341f5f7..b4cb46cc90 100644 --- a/hack/jenkins/set_pending.sh +++ b/hack/jenkins/minikube_set_pending.sh @@ -22,12 +22,12 @@ # The script expects the following env variabls: # ghprbPullId: The pull request ID, 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 +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" curl "https://api.github.com/repos/kubernetes/minikube/statuses/${ghprbActualCommit}?access_token=$access_token" \ -H "Content-Type: application/json" \ diff --git a/hack/jenkins/osx_integration_tests_virtualbox.sh b/hack/jenkins/osx_integration_tests_virtualbox.sh new file mode 100644 index 0000000000..73bc65e965 --- /dev/null +++ b/hack/jenkins/osx_integration_tests_virtualbox.sh @@ -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 diff --git a/hack/jenkins/osx_integration_tests_xhyve.sh b/hack/jenkins/osx_integration_tests_xhyve.sh new file mode 100644 index 0000000000..665844cd91 --- /dev/null +++ b/hack/jenkins/osx_integration_tests_xhyve.sh @@ -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 diff --git a/hack/jenkins/promote_localkube_binary.sh b/hack/jenkins/promote_localkube_binary.sh new file mode 100644 index 0000000000..f2e1b838c7 --- /dev/null +++ b/hack/jenkins/promote_localkube_binary.sh @@ -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 diff --git a/hack/jenkins/release_build_and_upload.sh b/hack/jenkins/release_build_and_upload.sh new file mode 100644 index 0000000000..7cce3793da --- /dev/null +++ b/hack/jenkins/release_build_and_upload.sh @@ -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 + diff --git a/hack/jenkins/release_github_page.sh b/hack/jenkins/release_github_page.sh new file mode 100644 index 0000000000..7cce3793da --- /dev/null +++ b/hack/jenkins/release_github_page.sh @@ -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 + diff --git a/hack/jenkins/windows_integration_test_hyperv.ps1 b/hack/jenkins/windows_integration_test_hyperv.ps1 new file mode 100644 index 0000000000..81050696a6 --- /dev/null +++ b/hack/jenkins/windows_integration_test_hyperv.ps1 @@ -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 \ No newline at end of file