mirror of
https://github.com/gin-gonic/gin.git
synced 2025-12-17 16:13:35 +08:00
56 lines
1.4 KiB
Makefile
56 lines
1.4 KiB
Makefile
## Location to install dependencies to
|
|
LOCALBIN ?= $(shell pwd)/bin
|
|
TESTMOD := testdata/go_test.mod
|
|
|
|
$(LOCALBIN):
|
|
mkdir -p $(LOCALBIN)
|
|
|
|
.PHONY: test
|
|
test:
|
|
go test -v -race ./...
|
|
go test -v -race ./testdata -modfile=$(TESTMOD)
|
|
|
|
.PHONY: simple-test
|
|
simple-test:
|
|
go test -v ./...
|
|
go test -v ./testdata -modfile=$(TESTMOD)
|
|
|
|
.PHONY: fuzz
|
|
fuzz:
|
|
go test -fuzz=Fuzz -fuzztime 60s
|
|
|
|
.PHONY: cover
|
|
cover:
|
|
go test -coverpkg=.,./ast,./lexer,./parser,./printer,./scanner,./token -coverprofile=cover.out -modfile=$(TESTMOD) ./... ./testdata
|
|
|
|
.PHONY: cover-html
|
|
cover-html: cover
|
|
go tool cover -html=cover.out
|
|
|
|
.PHONY: ycat/build
|
|
ycat/build: $(LOCALBIN)
|
|
cd ./cmd/ycat && go build -o $(LOCALBIN)/ycat .
|
|
|
|
.PHONY: lint
|
|
lint: golangci-lint ## Run golangci-lint
|
|
@$(GOLANGCI_LINT) run
|
|
|
|
.PHONY: fmt
|
|
fmt: golangci-lint ## Ensure consistent code style
|
|
@go mod tidy
|
|
@go fmt ./...
|
|
@$(GOLANGCI_LINT) run --fix
|
|
|
|
## Tool Binaries
|
|
GOLANGCI_LINT ?= $(LOCALBIN)/golangci-lint
|
|
|
|
## Tool Versions
|
|
GOLANGCI_VERSION := 2.1.2
|
|
|
|
.PHONY: golangci-lint
|
|
.PHONY: $(GOLANGCI_LINT)
|
|
golangci-lint: $(GOLANGCI_LINT) ## Download golangci-lint locally if necessary.
|
|
$(GOLANGCI_LINT): $(LOCALBIN)
|
|
@test -s $(LOCALBIN)/golangci-lint && $(LOCALBIN)/golangci-lint version --short | grep -q $(GOLANGCI_VERSION) || \
|
|
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(LOCALBIN) v$(GOLANGCI_VERSION)
|