|
1 | | -BUILD_DIR=build |
| 1 | +NAME := noderig |
| 2 | +BUILD_DIR := build |
| 3 | +GITHASH := $(shell git rev-parse HEAD) |
2 | 4 |
|
3 | | -CC=go build |
4 | | -GITHASH=$(shell git rev-parse HEAD) |
5 | | -DFLAGS=-race |
6 | | -CFLAGS=-X github.com/ovh/noderig/cmd.githash=$(GITHASH) |
7 | | -CROSS=GOOS=linux GOARCH=amd64 |
| 5 | +CC := GO111MODULE=on go build |
| 6 | +CROSS := GOOS=linux GOARCH=amd64 |
| 7 | +DFLAGS := -race |
| 8 | +CFLAGS := -i -v -mod vendor |
| 9 | +LDFLAGS := -X github.com/ovh/noderig/cmd.githash=$(GITHASH) |
8 | 10 |
|
9 | | -rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d)) |
10 | | -VPATH= $(BUILD_DIR) |
| 11 | +rwildcard := $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d)) |
11 | 12 |
|
12 | | -LINT_PATHS= ./cmd/... ./collectors/... ./core/... ./ |
| 13 | +FORMAT_PATHS := ./cmd ./core ./collectors $(NAME).go |
| 14 | +MODULE_PATHS := ./cmd/... ./core/... ./collectors/... |
| 15 | +FILE_PATHS := $(call rwildcard, cmd, *.go) $(call rwildcard, core, *.go) $(NAME).go |
13 | 16 |
|
14 | | -.SECONDEXPANSION: |
| 17 | +.PHONY: all |
| 18 | +all: init dep format lint release |
15 | 19 |
|
16 | | -install: |
17 | | - curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh |
18 | | - curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.16.0 |
| 20 | +.PHONY: init |
| 21 | +init: |
| 22 | + GO111MODULE=on go get -u -v github.com/golangci/golangci-lint/cmd/golangci-lint |
19 | 23 |
|
20 | | -init: |
21 | | - dep init |
| 24 | +.PHONY: dep |
| 25 | +dep: |
| 26 | + GO111MODULE=on go mod vendor -v |
22 | 27 |
|
23 | | -deps: |
24 | | - dep ensure -v |
| 28 | +.PHONY: fmt |
| 29 | +format: $(FILE_PATHS) |
| 30 | + gofmt -s -w $(FORMAT_PATHS) |
25 | 31 |
|
26 | | -build: noderig.go $$(call rwildcard, ./cmd, *.go) $$(call rwildcard, ./collectors, *.go) |
27 | | - $(CC) $(DFLAGS) -ldflags "$(CFLAGS)" -o $(BUILD_DIR)/noderig noderig.go |
| 32 | +.PHONY: lint |
| 33 | +lint: $(FILE_PATHS) |
| 34 | + golangci-lint run |
28 | 35 |
|
29 | | -.PHONY: release |
30 | | -release: noderig.go $$(call rwildcard, ./cmd, *.go) $$(call rwildcard, ./collectors, *.go) |
31 | | - $(CC) -ldflags "$(CFLAGS)" -o $(BUILD_DIR)/noderig noderig.go |
| 36 | +.PHONY: build |
| 37 | +build: $(FILE_PATHS) |
| 38 | + $(CC) $(CFLAGS) $(DFLAGS) -ldflags '$(LDFLAGS)' -o $(BUILD_DIR)/$(NAME) |
32 | 39 |
|
33 | | -.PHONY: dist |
34 | | -dist: noderig.go $$(call rwildcard, ./cmd, *.go) $$(call rwildcard, ./collectors, *.go) |
35 | | - $(CROSS) $(CC) -ldflags "$(CFLAGS) -s -w" -o $(BUILD_DIR)/noderig noderig.go |
| 40 | +.PHONY: dev |
| 41 | +dev: fmt lint build |
36 | 42 |
|
37 | | -.PHONY: lint |
38 | | -lint: |
39 | | - $(GOPATH)/bin/golangci-lint run --enable-all \ |
40 | | - --disable gochecknoinits \ |
41 | | - --disable gochecknoglobals \ |
42 | | - --disable scopelint \ |
43 | | - --disable goimports \ |
44 | | - $(LINT_PATHS) |
45 | | - |
46 | | -.PHONY: format |
47 | | -format: |
48 | | - gofmt -w -s ./cmd ./core ./collectors noderig.go |
| 43 | +.PHONY: release |
| 44 | +release: $(FILE_PATHS) |
| 45 | + $(CC) $(CFLAGS) -ldflags '$(LDFLAGS) -s -w' -o $(BUILD_DIR)/$(NAME) |
49 | 46 |
|
50 | | -.PHONY: dev |
51 | | -dev: format lint build |
| 47 | +.PHONY: dist |
| 48 | +dist: $(FILE_PATHS) |
| 49 | + $(CROSS) $(CC) $(CFLAGS) -ldflags '$(LDFLAGS) -s -w' -o $(BUILD_DIR)/$(NAME) |
52 | 50 |
|
53 | 51 | .PHONY: clean |
54 | 52 | clean: |
55 | | - rm -rf $BUILD_DIR |
| 53 | + rm -rfv $(BUILD_DIR) |
| 54 | + rm -rfv vendor |
56 | 55 |
|
57 | 56 | # Docker build |
58 | 57 |
|
| 58 | +.PHONY: build-docker |
59 | 59 | build-docker: build-go-in-docker build-docker-image |
60 | 60 |
|
61 | | -go-build-in-docker: |
62 | | - $(CC) -ldflags "$(CFLAGS)" noderig.go |
63 | | - |
| 61 | +.PHONY: build-go-in-docker |
64 | 62 | build-go-in-docker: |
65 | 63 | docker run --rm \ |
66 | 64 | -e GOBIN=/go/bin/ -e CGO_ENABLED=0 -e GOPATH=/go \ |
67 | 65 | -v ${PWD}:/go/src/github.com/ovh/noderig \ |
68 | 66 | -w /go/src/github.com/ovh/noderig \ |
69 | | - golang:1.8.0 \ |
70 | | - make glide-install go-build-in-docker |
| 67 | + golang:1.12.6 \ |
| 68 | + make |
71 | 69 |
|
| 70 | +.PHONY: build-docker-image |
72 | 71 | build-docker-image: |
73 | 72 | docker build -t ovh/noderig . |
74 | 73 |
|
| 74 | +.PHONY: run |
75 | 75 | run: |
76 | 76 | docker run --rm --net host ovh/noderig |
0 commit comments