constellation/bazel/ci/golangci.sh.in

41 lines
964 B
Bash
Raw Normal View History

#!/usr/bin/env bash
lib=$(realpath @@BASE_LIB@@) || exit 1
golangcilint=$(realpath @@GOLANGCI-LINT@@) || exit 1
go=$(realpath @@GO@@) || exit 1
# shellcheck source=../sh/lib.bash
if ! source "${lib}"; then
echo "Error: could not find import"
exit 1
fi
cd "${BUILD_WORKSPACE_DIRECTORY}" || exit 1
readarray -t <<< "$(${go} list -f '{{.Dir}}' -m)"
modules=("${MAPFILE[@]}")
excludeMods=(
"hack/tools"
)
echo "The following Go modules are excluded and won't be linted with golangci-lint:"
for exclude in "${excludeMods[@]}"; do
for i in "${!modules[@]}"; do
if [[ ${modules[i]} == "${BUILD_WORKSPACE_DIRECTORY}/${exclude}" ]]; then
echo " ${modules[i]}"
unset 'modules[i]'
fi
done
done
statuscode=0
echo "Linting the following Go modules with golangci-lint:"
for mod in "${modules[@]}"; do
echo " ${mod}"
GOROOT=$(${go} env GOROOT) ${golangcilint} run --timeout=15m "${mod}/..." || statuscode=$?
done
exit "${statuscode}"