k3s/scripts/validate
Brad Davidson b297996b92 Add runtime checking of golang version
Forces other groups packaging k3s to intentionally choose to build k3s with an unvalidated golang version

Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
2024-01-04 17:22:46 -08:00

52 lines
1021 B
Bash
Executable File

#!/bin/bash
set -e
if [ -n "$SKIP_VALIDATE" ]; then
echo Skipping validation
exit
fi
cd $(dirname $0)/..
echo Running: install script signature checks
sha256sum -c install.sh.sha256sum
echo Running: go mod tidy
go mod tidy
echo Running: go generate
GOOS=linux CC=gcc CXX=g++ go generate
echo Running validation
. ./scripts/version.sh
if [ -n "$DIRTY" ]; then
echo Source dir is dirty
git status --porcelain --untracked-files=no
git diff
exit 1
fi
echo Running: go version
if ! go version | grep -s "go version ${VERSION_GOLANG} "; then
echo "Unexpected $(go version) - Kubernetes ${VERSION_K8S} should be built with go version ${VERSION_GOLANG}"
exit 1
fi
echo Running: go mod verify
go mod verify
if [ ! -e build/data ];then
mkdir -p build/data
fi
if ! command -v golangci-lint; then
echo Skipping validation: no golangci-lint available
exit
fi
#echo Running: golangci-lint
## https://github.com/golangci/golangci-lint/issues/2788
#CGO_ENABLED=0 golangci-lint run -v