From 8f41fe1a3f114bb249e65faf3b9bd4a27ad1df14 Mon Sep 17 00:00:00 2001 From: Brad Davidson Date: Mon, 29 Aug 2022 19:13:23 +0000 Subject: [PATCH] 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 --- scripts/validate | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/scripts/validate b/scripts/validate index 93e9abb3b9..90cd867ef3 100755 --- a/scripts/validate +++ b/scripts/validate @@ -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