mirror of
https://github.com/datarhei/core.git
synced 2026-04-22 23:57:09 +08:00
74 lines
1.6 KiB
Makefile
74 lines
1.6 KiB
Makefile
COMMIT := $(shell if [ -d .git ]; then git rev-parse HEAD; else echo "unknown"; fi)
|
|
SHORTCOMMIT := $(shell echo $(COMMIT) | head -c 7)
|
|
|
|
all: build
|
|
|
|
## test: Run all tests
|
|
test:
|
|
go test -race -coverprofile=/dev/null -covermode=atomic -v ./...
|
|
|
|
## fuzz: Run fuzz tests
|
|
fuzz:
|
|
go test -fuzz=Fuzz -run=^Fuzz ./packet -fuzztime 30s
|
|
|
|
## vet: Analyze code for potential errors
|
|
vet:
|
|
go vet ./...
|
|
|
|
## fmt: Format code
|
|
fmt:
|
|
go fmt ./...
|
|
|
|
## update: Update dependencies
|
|
update:
|
|
go get -u -t
|
|
@-$(MAKE) tidy
|
|
@-$(MAKE) vendor
|
|
|
|
## tidy: Tidy up go.mod
|
|
tidy:
|
|
go mod tidy
|
|
|
|
## vendor: Update vendored packages
|
|
vendor:
|
|
go mod vendor
|
|
|
|
## lint: Static analysis with staticcheck
|
|
lint:
|
|
staticcheck ./...
|
|
|
|
## client: Build import binary
|
|
client:
|
|
cd contrib/client && CGO_ENABLED=0 go build -o client -ldflags="-s -w" -a
|
|
|
|
## server: Build import binary
|
|
server:
|
|
cd contrib/server && CGO_ENABLED=0 go build -o server -ldflags="-s -w" -a
|
|
|
|
## coverage: Generate code coverage analysis
|
|
coverage:
|
|
go test -race -coverprofile=cover.out -timeout 60s -v ./...
|
|
go tool cover -html=cover.out -o cover.html
|
|
|
|
## commit: Prepare code for commit (vet, fmt, test)
|
|
commit: vet fmt lint test
|
|
@echo "No errors found. Ready for a commit."
|
|
|
|
## docker: Build standard Docker image
|
|
docker:
|
|
docker build -t gosrt:$(SHORTCOMMIT) .
|
|
|
|
## logtopics: Extract all logging topics
|
|
logtopics:
|
|
grep -ERho 'log\("([^"]+)' *.go | sed -E -e 's/log\("//' | sort -u
|
|
|
|
.PHONY: help test fuzz vet fmt vendor commit coverage lint client server update logtopics
|
|
|
|
## help: Show all commands
|
|
help: Makefile
|
|
@echo
|
|
@echo " Choose a command:"
|
|
@echo
|
|
@sed -n 's/^##//p' $< | column -t -s ':' | sed -e 's/^/ /'
|
|
@echo
|