From cc54b8437aaddca02658431e0b2dbd54f1e82bf9 Mon Sep 17 00:00:00 2001 From: Patrick <71560045+cheese-head@users.noreply.github.com> Date: Mon, 18 Nov 2024 02:33:55 -0700 Subject: [PATCH] Add toolchain check (#5983) Fixes https://github.com/open-telemetry/opentelemetry-go/issues/5660 Co-authored-by: Damien Mathieu <42@dmathieu.com> --- .github/workflows/ci.yml | 2 +- Makefile | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ca6ea0be470..192dba5ee0a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,7 +45,7 @@ jobs: - name: Generate run: make generate - name: Run linters - run: make license-check lint vanity-import-check verify-readmes verify-mods + run: make toolchain-check license-check lint vanity-import-check verify-readmes verify-mods - name: Build run: make build - name: Check clean repository diff --git a/Makefile b/Makefile index b8292a4fb91..a7f6d8cc688 100644 --- a/Makefile +++ b/Makefile @@ -14,8 +14,8 @@ TIMEOUT = 60 .DEFAULT_GOAL := precommit .PHONY: precommit ci -precommit: generate license-check misspell go-mod-tidy golangci-lint-fix verify-readmes verify-mods test-default -ci: generate license-check lint vanity-import-check verify-readmes verify-mods build test-default check-clean-work-tree test-coverage +precommit: generate toolchain-check license-check misspell go-mod-tidy golangci-lint-fix verify-readmes verify-mods test-default +ci: generate toolchain-check license-check lint vanity-import-check verify-readmes verify-mods build test-default check-clean-work-tree test-coverage # Tools @@ -235,6 +235,16 @@ govulncheck/%: $(GOVULNCHECK) codespell: $(CODESPELL) @$(DOCKERPY) $(CODESPELL) +.PHONY: toolchain-check +toolchain-check: + @toolchainRes=$$(for f in $(ALL_GO_MOD_DIRS); do \ + awk '/^toolchain/ { found=1; next } END { if (found) print FILENAME }' $$f/go.mod; \ + done); \ + if [ -n "$${toolchainRes}" ]; then \ + echo "toolchain checking failed:"; echo "$${toolchainRes}"; \ + exit 1; \ + fi + .PHONY: license-check license-check: @licRes=$$(for f in $$(find . -type f \( -iname '*.go' -o -iname '*.sh' \) ! -path '**/third_party/*' ! -path './.git/*' ) ; do \