2021-04-25 10:21:04 -04:00
|
|
|
# Calculate version
|
2022-06-12 17:01:17 +08:00
|
|
|
version ?= $(shell git describe --always --tags --dirty)
|
2021-04-25 10:21:04 -04:00
|
|
|
|
2021-11-13 08:39:20 +00:00
|
|
|
rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
|
|
|
|
|
2022-06-04 18:11:10 +08:00
|
|
|
# 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)
|
|
|
|
|
|
|
|
|
2021-10-27 06:48:30 +00:00
|
|
|
build:
|
2022-11-04 11:26:33 +01:00
|
|
|
nix build
|
2021-04-25 10:21:04 -04:00
|
|
|
|
|
|
|
dev: lint test build
|
|
|
|
|
|
|
|
test:
|
2024-12-17 22:06:57 +09:00
|
|
|
gotestsum -- -short -race -coverprofile=coverage.out ./...
|
2021-04-25 10:21:04 -04:00
|
|
|
|
2023-05-10 12:10:33 +02:00
|
|
|
test_integration:
|
2022-10-18 12:03:51 +02:00
|
|
|
docker run \
|
2022-10-18 12:09:57 +02:00
|
|
|
-t --rm \
|
2022-10-18 12:03:51 +02:00
|
|
|
-v ~/.cache/hs-integration-go:/go \
|
|
|
|
--name headscale-test-suite \
|
2022-10-18 16:00:24 +02:00
|
|
|
-v $$PWD:$$PWD -w $$PWD/integration \
|
2022-10-18 12:03:51 +02:00
|
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
2024-05-16 02:40:14 +02:00
|
|
|
-v $$PWD/control_logs:/tmp/control \
|
2022-10-18 12:03:51 +02:00
|
|
|
golang:1 \
|
2024-12-17 22:06:57 +09:00
|
|
|
go run gotest.tools/gotestsum@latest -- -race -failfast ./... -timeout 120m -parallel 8
|
2021-04-25 10:21:04 -04:00
|
|
|
|
|
|
|
lint:
|
2021-11-13 08:39:20 +00:00
|
|
|
golangci-lint run --fix --timeout 10m
|
|
|
|
|
2024-12-10 16:23:55 +01:00
|
|
|
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}'
|
2024-12-13 12:35:24 +00:00
|
|
|
prettier --write --print-width 80 --prose-wrap always CHANGELOG.md
|
2024-12-10 16:23:55 +01:00
|
|
|
|
|
|
|
fmt-go:
|
2024-12-13 07:52:40 +00:00
|
|
|
# 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
|
2024-12-10 16:23:55 +01:00
|
|
|
|
|
|
|
fmt-proto:
|
|
|
|
clang-format -i $(PROTO_SOURCES)
|
2021-04-25 10:21:04 -04:00
|
|
|
|
2021-10-29 16:42:56 +00:00
|
|
|
proto-lint:
|
2022-04-21 20:23:21 +02:00
|
|
|
cd proto/ && go run github.com/bufbuild/buf/cmd/buf lint
|
2021-10-29 16:42:56 +00:00
|
|
|
|
2021-04-25 10:21:04 -04:00
|
|
|
compress: build
|
2021-05-02 14:47:36 -04:00
|
|
|
upx --brute headscale
|
2021-04-25 10:21:04 -04:00
|
|
|
|
2021-10-26 20:53:10 +00:00
|
|
|
generate:
|
|
|
|
rm -rf gen
|
2023-04-16 12:26:35 +02:00
|
|
|
buf generate proto
|