#!/bin/bash set -e cd $(dirname $0)/.. . ./scripts/version.sh echo Running: go mod tidy go mod tidy echo Running: go generate go generate if [ -n "$SKIP_VALIDATE" ]; then echo Skipping validation exit fi echo Running validation 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: go mod verify go mod verify if [ ! -e build/data ];then mkdir -p build/data fi 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