shdsbilling/on-premise/main/rancher_v2.9.1/source/rancher-2.9.1/scripts/validate

58 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
set -e
echo Running: flake8 python linting
cd $(dirname $0)/../tests/integration
tox -e flake8
cd ../..
if ! command -v golangci-lint; then
echo "Skipping validation on ARCH's other than linux amd64"
exit
fi
echo Running: golangci-lint
golangci-lint run
echo Tidying up modules
cd pkg/apis/
go mod tidy
cd ../..
go mod tidy
echo Verifying modules
go mod verify
dirty_files="$(git status --porcelain --untracked-files=no)"
if [ -n "$dirty_files" ]; then
echo "Encountered dirty repo! Aborting."
echo "If you're seeing this, it means there are uncommitted changes in the repo."
echo "If you're seeing this in CI, it probably means that your Go modules aren't tidy, or more generally that running"
echo "validation would result in changes to the repo. Make sure you're up to date with the upstream branch and run"
echo "'go mod tidy' and commit the changes, if any. The offending changed files are as follows:"
echo "$dirty_files"
exit 1
fi
# Check diff between ./go.mod and ./pkg/apis/go.mod
badmodule="false"
while read -r module tag; do
# Get tag from module in ./go.mod
roottag=$(cat go.mod | sed '1,/^require/d' | grep "${module} " | awk '{ print $2 }')
echo "${module}:"
echo "${tag} (./pkg/apis/go.mod)"
echo "${roottag} (./go.mod)"
# Compare with tag from module in ./pkg/apis/go.mod
if [[ "${tag}" != "${roottag}" ]]; then
echo "${module} is different ("${tag}" vs "${roottag}")"
badmodule="true"
fi
done <<< $(cat pkg/apis/go.mod | sed '1,/require/d' | head -n -1 | grep -v indirect | grep rancher | awk '{ print $1,$2 }')
if [[ "${badmodule}" == "true" ]]; then
echo "Diff found between ./go.mod and ./pkg/apis/go.mod"
exit 1
fi