headscale/Makefile

65 lines
1.5 KiB
Makefile
Raw Normal View History

# Calculate version
2022-06-12 17:01:17 +08:00
version ?= $(shell git describe --always --tags --dirty)
2021-11-13 08:39:20 +00:00
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
2021-11-13 08:39:20 +00:00
# GO_SOURCES = $(wildcard *.go)
# PROTO_SOURCES = $(wildcard **/*.proto)
GO_SOURCES = $(call rwildcard,,*.go)
PROTO_SOURCES = $(call rwildcard,,*.proto)
build:
2022-11-04 11:26:33 +01:00
nix build
dev: lint test build
test:
gotestsum -- -short -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 -- -failfast ./... -timeout 120m -parallel 8
lint:
2021-11-13 08:39:20 +00:00
golangci-lint run --fix --timeout 10m
fmt: fmt-go fmt-prettier fmt-proto
fmt-prettier:
2021-11-13 09:20:51 +00:00
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)
2021-10-29 16:42:56 +00:00
proto-lint:
cd proto/ && go run github.com/bufbuild/buf/cmd/buf lint
2021-10-29 16:42:56 +00:00
compress: build
upx --brute headscale
generate:
rm -rf gen
2023-04-16 12:26:35 +02:00
buf generate proto