github.com/grafana/synthetic-monitoring-agent@v0.64.2/scripts/make/900_helpers.mk (about) 1 ##@ Helpers 2 3 # rwildcard will recursively search for files matching the pattern, e.g. $(call rwildcard, src/*.c) 4 rwildcard = $(call rwildcard_helper, $(dir $1), $(notdir $1)) 5 rwildcard_helper = $(wildcard $(addsuffix $(strip $2), $(strip $1))) \ 6 $(foreach d, $(wildcard $(addsuffix *, $(strip $1))), $(call rwildcard_helper, $d/, $2)) 7 8 .PHONY: help 9 help: ## Display this help. 10 $(S) awk 'BEGIN {FS = ":.*##"; printf "Usage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) 11 12 .PHONY: clean 13 clean: ## Clean up intermediate build artifacts. 14 $(S) echo "Cleaning intermediate build artifacts..." 15 $(V) rm -rf node_modules 16 $(V) rm -rf public/build 17 $(V) rm -rf "$(DISTDIR)/build" 18 $(V) rm -rf "$(DISTDIR)/publish" 19 20 .PHONY: distclean 21 distclean: clean ## Clean up all build artifacts. 22 $(S) echo "Cleaning all build artifacts..." 23 $(V) git clean -Xf 24 25 .PHONY: version 26 version: ## Create version information file. 27 version: $(DISTDIR)/version.new 28 # Look at the new version file and replace it only if it has changed. 29 $(S) cmp -s $(DISTDIR)/version.new $(DISTDIR)/version && \ 30 rm $(DISTDIR)/version.new || \ 31 mv $(DISTDIR)/version.new $(DISTDIR)/version 32 $(S) cat $(DISTDIR)/version 33 34 $(DISTDIR)/version $(DISTDIR)/version.new: 35 $(S) mkdir -p $(DISTDIR) 36 $(S) ./scripts/version > $@ 37 38 .PHONY: update-gitignore 39 update-gitignore: $(GITIGNORE_GEN) 40 $(V) $(GITIGNORE_GEN) -config-filename scripts/configs/gitignore.yaml > $(ROOTDIR)/.gitignore 41 42 .PHONY: docker-build 43 docker-build: 44 $(ROOTDIR)/scripts/docker_build build 45 46 .PHONY: docker-image 47 docker-image: docker-build 48 $(S) DOCKER_BUILDKIT=1 docker build --file Dockerfile --tag $(DOCKER_TAG):$(BUILD_VERSION) . 49 50 .PHONY: generate 51 generate: $(ROOTDIR)/pkg/accounting/data.go 52 generate: $(ROOTDIR)/pkg/pb/synthetic_monitoring/checks.pb.go 53 generate: $(ROOTDIR)/pkg/pb/synthetic_monitoring/string.go 54 generate: $(ROOTDIR)/pkg/pb/synthetic_monitoring/multihttp_string.go 55 generate: 56 $(S) true 57 58 $(ROOTDIR)/pkg/accounting/data.go: $(ROOTDIR)/pkg/accounting/data.go.tmpl $(wildcard $(ROOTDIR)/internal/scraper/testdata/*.txt) 59 $(S) echo "Generating $@ ..." 60 $(V) $(GO) generate -v "$(@D)" 61 62 $(ROOTDIR)/pkg/pb/synthetic_monitoring/%.pb.go: $(ROOTDIR)/pkg/pb/synthetic_monitoring/%.proto 63 $(S) echo "Generating $@ ..." 64 $(V) $(ROOTDIR)/scripts/genproto.sh 65 66 $(ROOTDIR)/pkg/pb/synthetic_monitoring/string.go: $(wildcard $(ROOTDIR)/pkg/pb/synthetic_monitoring/*.pb.go) $(ROOTDIR)/pkg/pb/synthetic_monitoring/checks_extra.go 67 $(S) echo "Generating $@ ..." 68 $(V) $(GO) generate -v "$(@D)" 69 70 $(ROOTDIR)/pkg/pb/synthetic_monitoring/multihttp_string.go: $(wildcard $(ROOTDIR)/pkg/pb/synthetic_monitoring/*.pb.go) $(ROOTDIR)/pkg/pb/synthetic_monitoring/checks_extra.go 71 $(S) echo "Generating $@ ..." 72 $(V) $(GO) generate -v "$(@D)" 73 74 ifeq ($(CI),true) 75 TESTDATA_GO ?= $(GO) 76 else 77 TESTDATA_GO ?= $(ROOTDIR)/scripts/docker-run env $(GO) 78 endif 79 80 .PHONY: testdata 81 testdata: ## Update golden files for tests. 82 $(V) $(TESTDATA_GO) test -v -run TestValidateMetrics ./internal/scraper -args -update-golden 83 84 GBT_GO_VERSION_FILE := $(strip $(DISTDIR)/$(subst :,_,$(subst /,_,$(GBT_IMAGE))).go_version) 85 86 $(GBT_GO_VERSION_FILE) : 87 $(ROOTDIR)/scripts/docker-run go version | cut -d ' ' -f3 | sed -e 's,^go,,' > "$@" 88 89 .PHONY: update-go-version 90 update-go-version: $(GBT_GO_VERSION_FILE) 91 update-go-version: ## Update Go version (specify in go.mod) 92 $(S) $(GO) mod edit -go=$(shell cat "$(GBT_GO_VERSION_FILE)")