k3s/scripts/validate
Jose D. Gomez R 79b44cee29
Create and validate install.sh signatures (#8312)
- SHA256 Signature of the install script
- Added a sha256sum invocations in the validate script.

  These calls will validate that the install script signatures
  match. And when the script is changed the signatures must be
  recalculated as reported by the error message in sha256sum.

Signed-off-by: Jose D. Gomez R <jose.gomez@suse.com>
2023-09-27 12:34:08 -07:00

54 lines
1.2 KiB
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
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
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 ! 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