mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	* Add -race flag to Makefile and integration tests; fix data race in CreateTailscaleNodesInUser * Fix data race in ExecuteCommand by using local buffers and mutex Signed-off-by: Dongjun Na <kmu5544616@gmail.com> * lint Signed-off-by: Dongjun Na <kmu5544616@gmail.com> --------- Signed-off-by: Dongjun Na <kmu5544616@gmail.com>
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
# Calculate version
 | 
						|
version ?= $(shell git describe --always --tags --dirty)
 | 
						|
 | 
						|
rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
 | 
						|
 | 
						|
# Determine if OS supports pie
 | 
						|
GOOS ?= $(shell uname | tr '[:upper:]' '[:lower:]')
 | 
						|
ifeq ($(filter $(GOOS), openbsd netbsd soloaris plan9), )
 | 
						|
	pieflags = -buildmode=pie
 | 
						|
else
 | 
						|
endif
 | 
						|
 | 
						|
# GO_SOURCES = $(wildcard *.go)
 | 
						|
# PROTO_SOURCES = $(wildcard **/*.proto)
 | 
						|
GO_SOURCES = $(call rwildcard,,*.go)
 | 
						|
PROTO_SOURCES = $(call rwildcard,,*.proto)
 | 
						|
 | 
						|
 | 
						|
build:
 | 
						|
	nix build
 | 
						|
 | 
						|
dev: lint test build
 | 
						|
 | 
						|
test:
 | 
						|
	gotestsum -- -short -race -coverprofile=coverage.out ./...
 | 
						|
 | 
						|
test_integration:
 | 
						|
	docker run \
 | 
						|
		-t --rm \
 | 
						|
		-v ~/.cache/hs-integration-go:/go \
 | 
						|
		--name headscale-test-suite \
 | 
						|
		-v $$PWD:$$PWD -w $$PWD/integration \
 | 
						|
		-v /var/run/docker.sock:/var/run/docker.sock \
 | 
						|
		-v $$PWD/control_logs:/tmp/control \
 | 
						|
		golang:1 \
 | 
						|
		go run gotest.tools/gotestsum@latest -- -race -failfast ./... -timeout 120m -parallel 8
 | 
						|
 | 
						|
lint:
 | 
						|
	golangci-lint run --fix --timeout 10m
 | 
						|
 | 
						|
fmt: fmt-go fmt-prettier fmt-proto
 | 
						|
 | 
						|
fmt-prettier:
 | 
						|
	prettier --write '**/**.{ts,js,md,yaml,yml,sass,css,scss,html}'
 | 
						|
	prettier --write --print-width 80 --prose-wrap always CHANGELOG.md
 | 
						|
 | 
						|
fmt-go:
 | 
						|
	# TODO(kradalby): Reeval if we want to use 88 in the future.
 | 
						|
	# golines --max-len=88 --base-formatter=gofumpt -w $(GO_SOURCES)
 | 
						|
	gofumpt -l -w .
 | 
						|
	golangci-lint run --fix
 | 
						|
 | 
						|
fmt-proto:
 | 
						|
	clang-format -i $(PROTO_SOURCES)
 | 
						|
 | 
						|
proto-lint:
 | 
						|
	cd proto/ && go run github.com/bufbuild/buf/cmd/buf lint
 | 
						|
 | 
						|
compress: build
 | 
						|
	upx --brute headscale
 | 
						|
 | 
						|
generate:
 | 
						|
	rm -rf gen
 | 
						|
	buf generate proto
 |