58 lines
1.7 KiB
Bash
Executable File
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
|