|
1 |
| -.PHONY: all images lint test clean cross |
| 1 | +.PHONY: all images lint test clean cross dockerfiles run-images $(APP_NAMES) |
2 | 2 |
|
3 | 3 | .DEFAULT_GOAL := all
|
4 | 4 | IMAGE_PREFIX ?= cortexproject
|
5 | 5 | IMAGE_TAG := $(shell ./tools/image-tag)
|
6 | 6 | GIT_REVISION := $(shell git rev-parse --short HEAD)
|
7 | 7 | GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
|
8 | 8 | GO_FLAGS := -mod=vendor -ldflags "-extldflags \"-static\" -s -w -X $(VPREFIX).Branch=$(GIT_BRANCH) -X $(VPREFIX).Version=$(IMAGE_TAG) -X $(VPREFIX).Revision=$(GIT_REVISION)" -tags netgo
|
| 9 | +APP_NAMES := benchtool blockgen blockscopy chunktool cortextool deserializer e2ealerting logtool rules-migrator sim |
9 | 10 |
|
10 |
| -all: cortextool chunktool logtool |
11 |
| -images: cortextool-image chunktool-image logtool-image benchtool-image |
12 |
| -benchtool: cmd/benchtool/benchtool |
13 |
| -cortextool: cmd/cortextool/cortextool |
14 |
| -chunktool: cmd/chunktool/chunktool |
15 |
| -logtool: cmd/logtool/logtool |
16 |
| -e2ealerting: cmd/e2ealerting/e2ealerting |
17 |
| -blockscopy: cmd/blockscopy/blockscopy |
18 |
| -deserializer: cmd/deserializer/deserializer |
| 11 | +all: $(APP_NAMES) |
| 12 | +images: $(addsuffix -image, $(APP_NAMES)) |
19 | 13 |
|
20 |
| -benchtool-image: |
21 |
| - $(SUDO) docker build -t $(IMAGE_PREFIX)/benchtool -f cmd/benchtool/Dockerfile . |
22 |
| - $(SUDO) docker tag $(IMAGE_PREFIX)/benchtool $(IMAGE_PREFIX)/benchtool:$(IMAGE_TAG) |
| 14 | +%-image: |
| 15 | + $(SUDO) docker build -t $(IMAGE_PREFIX)/$* -f cmd/$*/Dockerfile . |
| 16 | + $(SUDO) docker tag $(IMAGE_PREFIX)/$* $(IMAGE_PREFIX)/$*:$(IMAGE_TAG) |
23 | 17 |
|
24 |
| -cortextool-image: |
25 |
| - $(SUDO) docker build -t $(IMAGE_PREFIX)/cortextool -f cmd/cortextool/Dockerfile . |
26 |
| - $(SUDO) docker tag $(IMAGE_PREFIX)/cortextool $(IMAGE_PREFIX)/cortextool:$(IMAGE_TAG) |
| 18 | +$(APP_NAMES): %: $(shell find cmd/$* -name '*.go') |
| 19 | + CGO_ENABLED=0 go build $(GO_FLAGS) -o ./cmd/$@ ./cmd/$* |
27 | 20 |
|
28 |
| -chunktool-image: |
29 |
| - $(SUDO) docker build -t $(IMAGE_PREFIX)/chunktool -f cmd/chunktool/Dockerfile . |
30 |
| - $(SUDO) docker tag $(IMAGE_PREFIX)/chunktool $(IMAGE_PREFIX)/chunktool:$(IMAGE_TAG) |
| 21 | +dockerfiles: Dockerfile.template |
| 22 | + for app in $(APP_NAMES); do \ |
| 23 | + sed "s/{{APP_NAME}}/$$app/g" Dockerfile.template > cmd/$$app/Dockerfile; \ |
| 24 | + done |
31 | 25 |
|
32 |
| -logtool-image: |
33 |
| - $(SUDO) docker build -t $(IMAGE_PREFIX)/logtool -f cmd/logtool/Dockerfile . |
34 |
| - $(SUDO) docker tag $(IMAGE_PREFIX)/logtool $(IMAGE_PREFIX)/logtool:$(IMAGE_TAG) |
35 |
| - |
36 |
| -e2ealerting-image: |
37 |
| - $(SUDO) docker build -t $(IMAGE_PREFIX)/e2ealerting -f cmd/e2ealerting/Dockerfile . |
38 |
| - $(SUDO) docker tag $(IMAGE_PREFIX)/e2ealerting $(IMAGE_PREFIX)/e2ealerting:$(IMAGE_TAG) |
39 |
| -push-e2ealerting-image: e2ealerting-image |
40 |
| - $(SUDO) docker push $(IMAGE_PREFIX)/e2ealerting:$(IMAGE_TAG) |
41 |
| - |
42 |
| -blockscopy-image: |
43 |
| - $(SUDO) docker build -t $(IMAGE_PREFIX)/blockscopy -f cmd/blockscopy/Dockerfile . |
44 |
| - $(SUDO) docker tag $(IMAGE_PREFIX)/blockscopy $(IMAGE_PREFIX)/blockscopy:$(IMAGE_TAG) |
45 |
| - |
46 |
| -cmd/benchtool/benchtool: $(APP_GO_FILES) cmd/benchtool/main.go |
47 |
| - CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D) |
48 |
| - |
49 |
| -cmd/cortextool/cortextool: $(APP_GO_FILES) cmd/cortextool/main.go |
50 |
| - CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D) |
51 |
| - |
52 |
| -cmd/chunktool/chunktool: $(APP_GO_FILES) cmd/chunktool/main.go |
53 |
| - CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D) |
54 |
| - |
55 |
| -cmd/logtool/logtool: $(APP_GO_FILES) cmd/logtool/main.go |
56 |
| - CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D) |
57 |
| - |
58 |
| -cmd/e2ealerting/e2ealerting: $(APP_GO_FILES) cmd/e2ealerting/main.go |
59 |
| - CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D) |
60 |
| - |
61 |
| -cmd/rules-migrator/rules-migrator: $(APP_GO_FILES) cmd/rules-migrator/main.go |
62 |
| - CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D) |
63 |
| - |
64 |
| -cmd/blockscopy/blockscopy: $(APP_GO_FILES) cmd/blockscopy/main.go |
65 |
| - CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D) |
66 |
| - |
67 |
| -cmd/deserializer/deserializer: $(APP_GO_FILES) cmd/deserializer/main.go |
68 |
| - CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D) |
| 26 | +run-images: |
| 27 | + for app in $(APP_NAMES); do \ |
| 28 | + $(SUDO) docker run --rm $(IMAGE_PREFIX)/$$app:$(IMAGE_TAG) --help; \ |
| 29 | + done |
69 | 30 |
|
70 | 31 | lint:
|
71 | 32 | golangci-lint run -v
|
72 | 33 |
|
73 | 34 | cross:
|
74 |
| - CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/benchtool |
75 |
| - CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/blockgen |
76 |
| - CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/blockscopy |
77 |
| - CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/chunktool |
78 |
| - CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/cortextool |
79 |
| - CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/e2ealerting |
80 |
| - CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/logtool |
81 |
| - CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/rules-migrator |
82 |
| - CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/sim |
83 |
| - CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/deserializer |
| 35 | + for app in $(APP_NAMES); do \ |
| 36 | + CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/$$app; \ |
| 37 | + done |
84 | 38 |
|
85 | 39 | test:
|
86 | 40 | go test -mod=vendor -p=8 ./pkg/...
|
87 | 41 |
|
88 | 42 | clean:
|
89 |
| - rm -rf cmd/benchtool/benchtool |
90 |
| - rm -rf cmd/cortextool/cortextool |
91 |
| - rm -rf cmd/chunktool/chunktool |
92 |
| - rm -rf cmd/logtool/logtool |
93 |
| - rm -rf cmd/e2ealerting/e2ealerting |
94 |
| - rm -rf cmd/blockscopy/blockscopy |
95 |
| - rm -rf cmd/deserializer/deserializer |
| 43 | + for app in $(APP_NAMES); do \ |
| 44 | + rm -f cmd/$$app/$$app; \ |
| 45 | + done |
| 46 | + rm -rf dist |
0 commit comments