Files
core/vendor/github.com/datarhei/gosrt/Makefile
T
2024-04-15 16:22:39 +02:00

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