|
1 |
| -.PHONY: all build clean image check vendor dependencies |
2 |
| - |
3 |
| -NAME := kube-pool-manager |
| 1 | +PROJECT_NAME := kube-pool-manager |
4 | 2 | GIT_TAG := $(shell git describe --dirty --tags --always)
|
5 | 3 | GIT_COMMIT := $(shell git rev-parse --short HEAD)
|
6 |
| -LDFLAGS := -X "main.gitTag=$(GIT_TAG)" -X "main.gitCommit=$(GIT_COMMIT)" -extldflags "-static" |
7 |
| - |
8 |
| -PKGS := $(shell go list ./... | grep -v -E '/vendor/|/test') |
9 |
| -FIRST_GOPATH := $(firstword $(subst :, ,$(shell go env GOPATH))) |
10 |
| -GOLANGCI_LINT_BIN := $(FIRST_GOPATH)/bin/golangci-lint |
| 4 | +LDFLAGS := -X "main.gitTag=$(GIT_TAG)" -X "main.gitCommit=$(GIT_COMMIT)" -extldflags "-static" |
11 | 5 |
|
| 6 | +FIRST_GOPATH := $(firstword $(subst :, ,$(shell go env GOPATH))) |
| 7 | +GOLANGCI_LINT_BIN := $(FIRST_GOPATH)/bin/golangci-lint |
12 | 8 |
|
| 9 | +.PHONY: all |
13 | 10 | all: build
|
14 | 11 |
|
| 12 | +.PHONY: clean |
15 | 13 | clean:
|
16 | 14 | git clean -Xfd .
|
17 | 15 |
|
| 16 | +.PHONY: build |
18 | 17 | build:
|
19 |
| - CGO_ENABLED=0 go build -a -ldflags '$(LDFLAGS)' -o $(NAME) . |
| 18 | + CGO_ENABLED=0 go build -a -ldflags '$(LDFLAGS)' -o $(PROJECT_NAME) . |
20 | 19 |
|
| 20 | +.PHONY: vendor |
21 | 21 | vendor:
|
22 | 22 | go mod tidy
|
23 | 23 | go mod vendor
|
24 | 24 | go mod verify
|
25 | 25 |
|
| 26 | +.PHONY: image |
26 | 27 | image: build
|
27 |
| - docker build -t $(NAME):$(TAG) . |
| 28 | + docker build -t $(PROJECT_NAME):$(GIT_TAG) . |
28 | 29 |
|
29 | 30 | build-push-development:
|
30 |
| - docker build -t webdevops/$(NAME):development . && docker push webdevops/$(NAME):development |
| 31 | + docker build -t webdevops/$(PROJECT_NAME):development . && docker push webdevops/$(PROJECT_NAME):development |
31 | 32 |
|
| 33 | +.PHONY: test |
32 | 34 | test:
|
33 | 35 | go test ./...
|
34 | 36 |
|
35 | 37 | .PHONY: lint
|
36 | 38 | lint: $(GOLANGCI_LINT_BIN)
|
37 |
| - # megacheck fails to respect build flags, causing compilation failure during linting. |
38 |
| - # instead, use the unused, gosimple, and staticcheck linters directly |
39 |
| - $(GOLANGCI_LINT_BIN) run -D megacheck -E unused,gosimple,staticcheck --timeout=10m |
| 39 | + $(GOLANGCI_LINT_BIN) run -E exportloopref,gofmt --timeout=10m |
40 | 40 |
|
| 41 | +.PHONY: dependencies |
41 | 42 | dependencies: $(GOLANGCI_LINT_BIN)
|
42 |
| - go mod download |
43 | 43 |
|
44 | 44 | $(GOLANGCI_LINT_BIN):
|
45 |
| - curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(FIRST_GOPATH)/bin v1.30.0 |
46 |
| - |
47 |
| - |
| 45 | + curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(FIRST_GOPATH)/bin v1.32.2 |
0 commit comments