diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fbe499466..66125fbb4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -131,6 +131,9 @@ jobs: - name: check code format run: make fmt-check + - name: check go modules tidiness + run: make tidy-module-check + - name: lint run: GOGC=50 make lint diff --git a/Makefile b/Makefile index c099d8a8f..e31c0adde 100644 --- a/Makefile +++ b/Makefile @@ -246,6 +246,13 @@ lint: docker-tools @$(call print, "Linting source.") $(DOCKER_TOOLS) golangci-lint run -v $(LINT_WORKERS) +tidy-module: + echo "Running 'go mod tidy' for all modules" + scripts/tidy_modules.sh + +tidy-module-check: tidy-module + if test -n "$$(git status --porcelain)"; then echo "modules not updated, please run `make tidy-module` again!"; git status; exit 1; fi + list: @$(call print, "Listing commands.") @$(MAKE) -qp | \ diff --git a/scripts/tidy_modules.sh b/scripts/tidy_modules.sh new file mode 100755 index 000000000..3fa5bfb25 --- /dev/null +++ b/scripts/tidy_modules.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +SUBMODULES=$(find . -mindepth 2 -name "go.mod" | cut -d'/' -f2) + + +# Run 'go mod tidy' for root. +go mod tidy + +# Run 'go mod tidy' for each module. +for submodule in $SUBMODULES +do + pushd $submodule + + go mod tidy + + popd +done