forked from ctxswitch/idd-sandbox
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
51 lines (39 loc) · 1.44 KB
/
Copy pathMakefile
File metadata and controls
51 lines (39 loc) · 1.44 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
APP := deployment-api
BIN_DIR := $(CURDIR)/bin
CACHE_DIR := $(CURDIR)/.cache
GOCACHE := $(CACHE_DIR)/go-build
GOMODCACHE := $(CACHE_DIR)/gomod
GOLANGCI_LINT_CACHE := $(CACHE_DIR)/golangci-lint
GO := GOCACHE=$(GOCACHE) GOMODCACHE=$(GOMODCACHE) go
GOLANGCI_LINT_VERSION ?= v2.11.4
GOLANGCI_LINT := $(BIN_DIR)/golangci-lint
PKGS := ./...
.DEFAULT_GOAL := help
.PHONY: help deps build test lint fmt tidy clean
help:
@echo "Targets:"
@echo " deps install local development tools into ./bin"
@echo " build build $(APP) into ./bin"
@echo " test run Go tests"
@echo " lint run golangci-lint"
@echo " fmt format Go files"
@echo " tidy tidy Go modules"
@echo " clean remove local build and tool outputs"
$(BIN_DIR):
mkdir -p $@
$(GOLANGCI_LINT): | $(BIN_DIR)
GOBIN=$(BIN_DIR) $(GO) install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION)
deps: $(GOLANGCI_LINT)
build: | $(BIN_DIR)
$(GO) build -o $(BIN_DIR)/$(APP) .
test:
$(GO) test $(PKGS)
lint: $(GOLANGCI_LINT)
GOCACHE=$(GOCACHE) GOMODCACHE=$(GOMODCACHE) GOLANGCI_LINT_CACHE=$(GOLANGCI_LINT_CACHE) $(GOLANGCI_LINT) fmt --diff $(PKGS)
GOCACHE=$(GOCACHE) GOMODCACHE=$(GOMODCACHE) GOLANGCI_LINT_CACHE=$(GOLANGCI_LINT_CACHE) $(GOLANGCI_LINT) run $(PKGS)
fmt: $(GOLANGCI_LINT)
GOCACHE=$(GOCACHE) GOMODCACHE=$(GOMODCACHE) GOLANGCI_LINT_CACHE=$(GOLANGCI_LINT_CACHE) $(GOLANGCI_LINT) fmt $(PKGS)
tidy:
$(GO) mod tidy
clean:
rm -rf $(BIN_DIR) $(CACHE_DIR)