61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| # Copyright 2019 The Kubernetes Authors.
 | |
| #
 | |
| # 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.
 | |
| 
 | |
| if [ -f Gopkg.toml ]; then
 | |
|     echo "Repo uses 'dep' for vendoring."
 | |
|     case "$(dep version 2>/dev/null | grep 'version *:')" in
 | |
| 	*v0.[56789]*)
 | |
|             if dep check; then
 | |
|                 echo "vendor up-to-date"
 | |
|             else
 | |
|                 exit 1
 | |
|             fi
 | |
|             ;;
 | |
| 	*) echo "skipping check, dep >= 0.5 required";;
 | |
|     esac
 | |
| elif [ -f go.mod ]; then
 | |
|     echo "Repo uses 'go mod'."
 | |
|     # shellcheck disable=SC2235
 | |
|     if [ "${JOB_NAME}" ] &&
 | |
|            ( [ "${JOB_TYPE}" != "presubmit" ] ||
 | |
|                  [ "$( (git diff "${PULL_BASE_SHA}..HEAD" -- go.mod go.sum vendor release-tools;
 | |
|                         git diff "${PULL_BASE_SHA}..HEAD" | grep -e '^@@.*@@ import (' -e '^[+-]import') |
 | |
| 		           wc -l)" -eq 0 ] ); then
 | |
| 	echo "Skipping vendor check because the Prow pre-submit job does not affect dependencies."
 | |
|     elif ! (set -x; env GO111MODULE=on go mod tidy); then
 | |
| 	echo "ERROR: vendor check failed."
 | |
| 	exit 1
 | |
|     elif [ "$(git status --porcelain -- go.mod go.sum | wc -l)" -gt 0 ]; then
 | |
| 	echo "ERROR: go module files *not* up-to-date, they did get modified by 'GO111MODULE=on go mod tidy':";
 | |
| 	git diff -- go.mod go.sum
 | |
| 	exit 1
 | |
|     elif [ -d vendor ]; then
 | |
| 	if ! (set -x; env GO111MODULE=on go mod vendor); then
 | |
| 	    echo "ERROR: vendor check failed."
 | |
| 	    exit 1
 | |
| 	elif [ "$(git status --porcelain -- vendor | wc -l)" -gt 0 ]; then
 | |
| 	    echo "ERROR: vendor directory *not* up-to-date, it did get modified by 'GO111MODULE=on go mod vendor':"
 | |
| 	    git status -- vendor
 | |
| 	    git diff -- vendor
 | |
| 	    exit 1
 | |
| 	else
 | |
| 	    echo "Go dependencies and vendor directory up-to-date."
 | |
| 	fi
 | |
|     else
 | |
| 	echo "Go dependencies up-to-date."
 | |
|     fi
 | |
| fi
 |