Add validation check to confirm correct golang version for Kubernetes

Also reorder validations to perform the short checks first so that
things fail faster if there's a problem.

Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
pull/6071/head
Brad Davidson 2022-08-29 19:13:23 +00:00 committed by Brad Davidson
parent 05475a7966
commit 8f41fe1a3f
1 changed files with 16 additions and 9 deletions

View File

@ -2,6 +2,7 @@
set -e
cd $(dirname $0)/..
. ./scripts/version.sh
echo Running: go mod tidy
go mod tidy
@ -13,13 +14,16 @@ if [ -n "$SKIP_VALIDATE" ]; then
echo Skipping validation
exit
fi
echo Running validation
if ! command -v golangci-lint; then
echo Skipping validation: no golangci-lint available
exit
echo Running: go version
DEPENDENCIES_URL="https://raw.githubusercontent.com/kubernetes/kubernetes/${VERSION_K8S}/build/dependencies.yaml"
GOLANG_VERSION=$(curl -sL "${DEPENDENCIES_URL}" | yq e '.dependencies[] | select(.name == "golang: upstream version").version' -)
if ! go version | grep -s "go version go${GOLANG_VERSION} "; then
echo "Unexpected $(go version) - Kubernetes ${VERSION_K8S} should be built with go version go${GOLANG_VERSION}"
exit 1
fi
echo Running validation
echo Running: go mod verify
go mod verify
@ -27,14 +31,17 @@ if [ ! -e build/data ];then
mkdir -p build/data
fi
echo Running: golangci-lint
golangci-lint run -v
. ./scripts/version.sh
if [ -n "$DIRTY" ]; then
echo Source dir is dirty
git status --porcelain --untracked-files=no
git diff
exit 1
fi
if ! command -v golangci-lint; then
echo Skipping validation: no golangci-lint available
exit
fi
echo Running: golangci-lint
golangci-lint run -v