Files
Crussell/backend/Makefile
T
popertotsandSisyphus f78489ae00 feat: add logutil and jobs internal packages
Add centralized jobs scheduler and logutil package with ANSI colors and duration formatting.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-07-07 00:09:34 +01:00

59 lines
1.8 KiB
Makefile

# Pipeline targets for Crussell backend
# Use: make <target> (runs with default tags: test,dev)
# make TAGS="test,!dev" <target>
TAGS ?= test,dev
RACE_FLAGS ?= -race -timeout 480s
.PHONY: test test-all test-race vet lint ci help
# --- Test matrix ---
test: ## Run tests with default build tags (test,dev)
go test -tags "$(TAGS)" -count=1 -parallel 8 ./...
test-prod: ## Run tests with production build tags (test,!dev)
go test -tags "test,!dev" -count=1 -parallel 8 ./...
test-dev: ## Run tests with dev build tags (test,dev)
go test -tags "test,dev" -count=1 -parallel 8 ./...
test-all: test-dev test-prod ## Run tests under both dev and prod build tags
test-race: ## Run tests with race detector enabled
go test -tags "$(TAGS)" $(RACE_FLAGS) -count=1 ./...
test-count: ## Run each test 10 times to detect flakiness
go test -tags "$(TAGS)" -count=10 -parallel 8 ./...
# --- Static analysis ---
vet: ## go vet under current build tags
go vet -tags "$(TAGS)" ./...
vet-all: ## go vet under both dev and prod build tags
@echo "=== vet: dev ==="
go vet -tags "test,dev" ./...
@echo "=== vet: prod ==="
go vet -tags "test,!dev" ./...
lint: ## staticcheck under current build tags
staticcheck -tags "$(TAGS)" ./...
lint-all: ## staticcheck under both build tags
@echo "=== staticcheck: dev ==="
staticcheck -tags "test,dev" ./...
@echo "=== staticcheck: prod ==="
staticcheck -tags "test,!dev" ./...
# --- Combined ---
ci: test-all vet-all lint-all ## Full CI pipeline: test + vet + lint under both tag sets
ci-race: test-race vet lint ## CI with race detection
# --- Utilities ---
help: ## Show this help
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}'