mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 18:28:13 +00:00 
			
		
		
		
	Merge pull request #12188 from eparis/godeps-clean-test
verify-godeps.sh script to make sure all of Godeps is easily reproducible
This commit is contained in:
		| @@ -22,6 +22,7 @@ script: | ||||
|   - ./hack/verify-swagger-spec.sh | ||||
|   - ./hack/verify-linkcheck.sh | ||||
|   - ./hack/verify-flags-underscore.py | ||||
|   - ./hack/verify-godeps.sh $TRAVIS_BRANCH | ||||
|  | ||||
| notifications: | ||||
|   irc: "chat.freenode.net#kubernetes-dev" | ||||
|   | ||||
							
								
								
									
										74
									
								
								hack/verify-godeps.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										74
									
								
								hack/verify-godeps.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Copyright 2015 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. | ||||
|  | ||||
| set -o errexit | ||||
| set -o nounset | ||||
| set -o pipefail | ||||
|  | ||||
| KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. | ||||
| source "${KUBE_ROOT}/hack/lib/init.sh" | ||||
|  | ||||
| branch="${1:-master}" | ||||
| # notice this uses ... to find the first shared ancestor | ||||
| if ! git diff origin/"${branch}"...HEAD | grep 'Godeps/' > /dev/null; then | ||||
|   exit 0 | ||||
| fi | ||||
|  | ||||
| # create a nice clean place to put our new godeps | ||||
| _tmpdir="$(mktemp -d -t gopath.XXXXXX)" | ||||
| function cleanup { | ||||
|   echo "Removing ${_tmpdir}" | ||||
|   rm -rf "${_tmpdir}" | ||||
| } | ||||
| trap cleanup EXIT | ||||
|  | ||||
| # build the godep tool | ||||
| export GOPATH="${_tmpdir}" | ||||
| go get -u github.com/tools/godep 2>/dev/null | ||||
| go install github.com/tools/godep 2>/dev/null | ||||
| GODEP="${_tmpdir}/bin/godep" | ||||
|  | ||||
| # fill out that nice clean place with the kube godeps | ||||
| echo "Starting to download all kubernetes godeps. This takes a while" | ||||
| "${GODEP}" restore | ||||
| echo "Download finished" | ||||
|  | ||||
| # copy the contents of your kube directory into the nice clean place | ||||
| _kubetmp="${_tmpdir}/src/k8s.io/" | ||||
| mkdir -p "${_kubetmp}" | ||||
| #should create ${_kubectmp}/kubernetes | ||||
| git archive --format=tar --prefix=kubernetes/ $(git write-tree) | (cd "${_kubetmp}" && tar xf -) | ||||
| _kubetmp="${_kubetmp}/kubernetes" | ||||
|  | ||||
| # destroy godeps in our COPY of the kube tree | ||||
| pushd "${_kubetmp}" > /dev/null | ||||
| rm -rf ./Godeps | ||||
|  | ||||
| # for some reason the kube tree needs to be a git repo for the godep tool to run. Doesn't make sense | ||||
| git init > /dev/null 2>&1 | ||||
|  | ||||
| # recreate the Godeps using the nice clean set we just downloaded | ||||
| "${GODEP}" save ./... | ||||
| popd > /dev/null | ||||
|  | ||||
| # Check for any (meaninful) differences between the godeps in the tree and this nice clean one we just built | ||||
| if ! _out="$(diff -NIaupr --ignore-matching-lines='^\s*\"GoVersion\":' --ignore-matching-lines='^\s*\"Comment\":' ${KUBE_ROOT}/Godeps/ ${_kubetmp}/Godeps/)"; then | ||||
|   echo "Your godeps changes are not reproducable" | ||||
|   echo "${_out}" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| # ex: ts=2 sw=2 et filetype=sh | ||||
| @@ -16,6 +16,20 @@ else | ||||
| fi | ||||
| echo "${reset}" | ||||
|  | ||||
| # Check if changes to Godeps are reproducable... | ||||
| files=($(git diff --cached --name-only --diff-filter ACM | grep "Godeps")) | ||||
| if [[ "${#files[@]}" -ne 0 ]]; then | ||||
|   echo -ne "Check if changes to Godeps are reproducable (this is pretty slow)..." | ||||
|   if ! OUT=$("hack/verify-godeps.sh" 2>&1); then | ||||
|     echo | ||||
|     echo "${red}${OUT}" | ||||
|     exit_code=1 | ||||
|   else | ||||
|     echo "${green}OK" | ||||
|   fi | ||||
|   echo "${reset}" | ||||
| fi | ||||
|  | ||||
| echo -ne "Checking for files that need gofmt... " | ||||
| files_need_gofmt=() | ||||
| files=($(git diff --cached --name-only --diff-filter ACM | grep "\.go" | grep -v -e "third_party" -e "Godeps")) | ||||
|   | ||||
| @@ -32,6 +32,7 @@ install: | ||||
|   - ./hack/verify-boilerplate.sh | ||||
|   - ./hack/verify-description.sh | ||||
|   - ./hack/verify-flags-underscore.py | ||||
|   - ./hack/verify-godeps.sh ${BASE_BRANCH} | ||||
|   - ./hack/travis/install-std-race.sh | ||||
|   - ./hack/verify-generated-conversions.sh | ||||
|   - ./hack/verify-generated-deep-copies.sh | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Saad Ali
					Saad Ali