diff --git a/Makefile b/Makefile index 0dd8673af..25c77240c 100644 --- a/Makefile +++ b/Makefile @@ -93,9 +93,9 @@ endif # If we only want to only test go code we have to change the test target # which is called by all. ifeq ($(GO_ONLY),1) -test: common-test +test: common-test check-go-mod-version else -test: common-test ui-build-module ui-test ui-lint +test: common-test ui-build-module ui-test ui-lint check-go-mod-version endif .PHONY: npm_licenses @@ -138,3 +138,8 @@ bench_tsdb: $(PROMU) cli-documentation: $(GO) run ./cmd/prometheus/ --write-documentation > docs/command-line/prometheus.md $(GO) run ./cmd/promtool/ write-documentation > docs/command-line/promtool.md + +.PHONY: check-go-mod-version +check-go-mod-version: + @echo ">> checking go.mod version matching" + @./scripts/check-go-mod-version.sh diff --git a/documentation/examples/remote_storage/go.mod b/documentation/examples/remote_storage/go.mod index 1014b0aad..06e72c8ba 100644 --- a/documentation/examples/remote_storage/go.mod +++ b/documentation/examples/remote_storage/go.mod @@ -1,6 +1,6 @@ module github.com/prometheus/prometheus/documentation/examples/remote_storage -go 1.18 +go 1.20 require ( github.com/alecthomas/kingpin/v2 v2.3.2 diff --git a/scripts/check-go-mod-version.sh b/scripts/check-go-mod-version.sh new file mode 100755 index 000000000..d651a6203 --- /dev/null +++ b/scripts/check-go-mod-version.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +readarray -t mod_files < <(find . -type f -name go.mod) + +echo "Checking files ${mod_files[@]}" + +matches=$(awk '$1 == "go" {print $2}' "${mod_files[@]}" | sort -u | wc -l) + +if [[ "${matches}" -ne 1 ]]; then + echo 'Not all go.mod files have matching go versions' + exit 1 +fi