forked from prometheus/client_golang
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
92 lines (78 loc) · 2.97 KB
/
Copy pathMakefile
File metadata and controls
92 lines (78 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# Copyright 2018 The Prometheus Authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
include Makefile.common
BUF := $(FIRST_GOPATH)/bin/buf
BUF_VERSION ?= v1.39.0
$(BUF):
go install github.com/bufbuild/buf/cmd/buf@$(BUF_VERSION)
.PHONY: deps
deps:
$(MAKE) common-deps
cd exp && $(GO) mod tidy && $(GO) mod download
.PHONY: test
test: deps common-test test-exp
.PHONY: test-short
test-short: deps common-test-short test-exp-short
.PHONY: update-go-version
update-go-version:
@bash update-go-version.bash
$(MAKE) generate-go-collector-test-files
.PHONY: generate-go-collector-test-files
file := supported_go_versions.json
VERSIONS := $(shell grep -o '"version": "[^"]*"' $(file) | sed 's/"version": "\(.*\)"/\1/')
generate-go-collector-test-files:
for GO_VERSION in $(VERSIONS); do \
docker run \
--platform linux/amd64 \
--rm -v $(PWD):/workspace \
-w /workspace \
golang:$$GO_VERSION \
bash ./generate-go-collector.bash; \
done; \
go mod tidy
.PHONY: fmt
fmt: common-format
.PHONY: proto
proto: ## Regenerate Go from remote write proto.
proto: $(BUF)
@echo ">> regenerating Prometheus Remote Write proto"
@cd exp/api/remote/genproto && $(BUF) generate
@cd exp/api/remote && find genproto/ -type f -exec sed -i '' 's/protohelpers "github.com\/planetscale\/vtprotobuf\/protohelpers"/protohelpers "github.com\/prometheus\/client_golang\/exp\/internal\/github.com\/planetscale\/vtprotobuf\/protohelpers"/g' {} \;
# For some reasons buf generates this unused import, kill it manually for now and reformat.
@cd exp/api/remote && find genproto/ -type f -exec sed -i '' 's/_ "github.com\/gogo\/protobuf\/gogoproto"//g' {} \;
@cd exp/api/remote && go fmt ./genproto/...
$(MAKE) fmt
.PHONY: test-exp
test-exp:
cd exp && $(GOTEST) $(test-flags) $(GOOPTS) $(pkgs)
.PHONY: test-exp-short
test-exp-short:
cd exp && $(GOTEST) -short $(GOOPTS) $(pkgs)
.PHONY: check-crlf
check-crlf:
@echo ">> checking for CRLF line endings"
@files=$$(find . -type f -not -path "*/\.*" -not -path "*/vendor/*" -exec file {} \; | grep CRLF | cut -d: -f1); \
if [ -n "$$files" ]; then \
echo "Files with CRLF line endings found:"; \
echo "$$files"; \
echo "Run 'make fix-crlf' to fix them"; \
exit 1; \
fi
.PHONY: fix-crlf
fix-crlf:
@echo ">> fixing CRLF line endings"
@files=$$(find . -type f -not -path "*/\.*" -not -path "*/vendor/*" -exec file {} \; | grep CRLF | cut -d: -f1); \
for file in $$files; do \
tr -d '\r' < "$$file" > "$$file.tmp" && mv "$$file.tmp" "$$file"; \
done
@echo ">> CRLF line endings fixed"