-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
50 lines (40 loc) · 1.46 KB
/
Makefile
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
built_at := $(shell date +%s)
git_commit := $(shell git describe --dirty --always)
BIN:=./bin
OS := $(shell uname)
GOLANGCI_LINT_VERSION?=1.19.1
ifeq ($(OS),Darwin)
GOLANGCI_LINT_ARCHIVE=golangci-lint-$(GOLANGCI_LINT_VERSION)-darwin-amd64.tar.gz
else
GOLANGCI_LINT_ARCHIVE=golangci-lint-$(GOLANGCI_LINT_VERSION)-linux-amd64.tar.gz
endif
.PHONY: build
build:
CGO_ENABLED=0 go build -ldflags "-X github.com/90poe/connectctl/internal/version.GitHash=$(git_commit) -X github.com/90poe/connectctl/internal/version.BuildDate=$(built_at)" ./cmd/connectctl
.PHONY: local-release
local-release:
goreleaser --snapshot --skip-publish --rm-dist
.PHONY: release
release: test lint
curl -sL https://git.io/goreleaser | bash
.PHONY: test
test:
@go test -v -covermode=count -coverprofile=coverage.out ./...
.PHONY: ci
ci: build test lint
.PHONY: lint
lint: $(BIN)/golangci-lint/golangci-lint ## lint
$(BIN)/golangci-lint/golangci-lint run
$(BIN)/golangci-lint/golangci-lint:
curl -OL https://github.com/golangci/golangci-lint/releases/download/v$(GOLANGCI_LINT_VERSION)/$(GOLANGCI_LINT_ARCHIVE)
mkdir -p $(BIN)/golangci-lint/
tar -xf $(GOLANGCI_LINT_ARCHIVE) --strip-components=1 -C $(BIN)/golangci-lint/
chmod +x $(BIN)/golangci-lint
rm -f $(GOLANGCI_LINT_ARCHIVE)
.PHONY: mocks
# generate mocks
mocks:
ifeq ("$(wildcard $(shell which counterfeiter))","")
go get github.com/maxbrunsfeld/counterfeiter/v6
endif
counterfeiter -o=./pkg/manager/mocks/client.go ./pkg/manager/manager.go client