mirror of
https://github.com/juanfont/headscale.git
synced 2025-11-08 21:24:50 -05:00
* cmd/hi: add integration test runner CLI tool Add a new CLI tool 'hi' for running headscale integration tests with Docker automation. The tool replaces manual Docker command composition with an automated solution. Features: - Run integration tests in golang:1.24 containers - Docker context detection (supports colima and other contexts) - Test isolation with unique run IDs and isolated control_logs - Automatic Docker image pulling and container management - Comprehensive cleanup operations for containers, networks, images - Docker volume caching for Go modules - Verbose logging and detailed test artifact reporting - Support for PostgreSQL/SQLite selection and various test flags Usage: go run ./cmd/hi run TestPingAllByIP --verbose The tool uses creachadair/command and flax for CLI parsing and provides cleanup subcommands for Docker resource management. Updates flake.nix vendorHash for new Go dependencies. * ci: update integration tests to use hi CLI tool Replace manual Docker command composition in GitHub Actions workflow with the new hi CLI tool for running integration tests. Changes: - Replace complex docker run command with simple 'go run ./cmd/hi run' - Remove manual environment variable setup (handled by hi tool) - Update artifact paths for new timestamped log directory structure - Simplify command from 15+ lines to 3 lines - Maintain all existing functionality (postgres/sqlite, timeout, test patterns) The hi tool automatically handles Docker context detection, container management, volume mounting, and environment variable setup that was previously done manually in the workflow. * makefile: remove test integration Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> --------- Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
54 lines
1.2 KiB
Makefile
54 lines
1.2 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 ./...
|
|
|
|
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
|