ci: lint all modules even if one module fails (#15819)

This commit is contained in:
Mark Rushakoff 2023-04-12 14:08:22 -04:00 committed by GitHub
parent 001c11e00d
commit 3cef1a8941
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 13 deletions

View File

@ -379,12 +379,12 @@ golangci_version=v1.51.2
lint:
@echo "--> Running linter"
@go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(golangci_version)
@sh ./scripts/go-lint-all.sh --timeout=15m
@./scripts/go-lint-all.bash --timeout=15m
lint-fix:
@echo "--> Running linter"
@go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(golangci_version)
@sh ./scripts/go-lint-all.sh --fix
@./scripts/go-lint-all.bash --fix
.PHONY: lint lint-fix

18
scripts/go-lint-all.bash Executable file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env bash
set -eu -o pipefail
REPO_ROOT="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/.." &> /dev/null && pwd )"
export REPO_ROOT
lint_module() {
local root="$1"
shift
cd "$(dirname "$root")" &&
echo "linting $(grep "^module" go.mod) [$(date -Iseconds -u)]" &&
golangci-lint run ./... -c "${REPO_ROOT}/.golangci.yml" "$@"
}
export -f lint_module
find "${REPO_ROOT}" -type f -name go.mod -print0 |
xargs -0 -I{} bash -c 'lint_module "$@"' _ {} "$@" # Prepend go.mod file before command-line args.

View File

@ -1,11 +0,0 @@
#!/usr/bin/env bash
set -eu
export pwd=$(pwd)
for modfile in $(find . -name go.mod); do
echo "linting $(dirname $modfile)"
DIR=$(dirname $modfile)
(cd $DIR; golangci-lint run ./... -c $pwd/.golangci.yml $@)
done