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)")