From c568ba9fa26f2adcbdb2456f7a0b9521d9b01308 Mon Sep 17 00:00:00 2001 From: yyforyongyu Date: Wed, 6 Sep 2023 02:17:00 +0800 Subject: [PATCH] github+Makefile: add new action `make tidy-module-check` This commit adds `tidy-module` and `tidy-module-check` to make sure the modules are always tidy. --- .github/workflows/main.yml | 3 +++ Makefile | 7 +++++++ scripts/tidy_modules.sh | 17 +++++++++++++++++ 3 files changed, 27 insertions(+) create mode 100755 scripts/tidy_modules.sh 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