- process-level tests: seed a real EДДС Bulk NDJSON, start the daemon, run the full-registry selfcheck, canonical HTTP sample, real address-log queries, strict house identity, input limits, load and graceful shutdown - production data stays outside the repo (ADDRKIT_E2E_REGISTRY/LOG); all temporary files live in t.TempDir() - add `make e2e` and `make check` (vet + race tests + dependency guard)
63 lines
1.7 KiB
Makefile
63 lines
1.7 KiB
Makefile
GO ?= go
|
|
BIN_DIR ?= bin
|
|
|
|
.PHONY: all build test vet fmt tidy run clean seed check e2e
|
|
|
|
all: build
|
|
|
|
## build: compile the service and the CLI as static binaries
|
|
build:
|
|
CGO_ENABLED=0 $(GO) build -trimpath -o $(BIN_DIR)/addrkitd ./cmd/addrkitd
|
|
CGO_ENABLED=0 $(GO) build -trimpath -o $(BIN_DIR)/addrkit ./cmd/addrkit
|
|
|
|
## test: run the full test suite with the race detector
|
|
test:
|
|
$(GO) test -race ./...
|
|
|
|
## vet: static analysis
|
|
vet:
|
|
$(GO) vet ./...
|
|
|
|
## check: vet + race tests + architecture guard (the address core must not
|
|
## depend on any events/outages adapter)
|
|
check: vet test
|
|
@if $(GO) list -deps ./cmd/addrkitd | grep -Eq 'domain/outages|adapters/arcgis'; then \
|
|
echo "addrkitd must not depend on events/outages packages" >&2; \
|
|
exit 1; \
|
|
fi
|
|
|
|
## e2e: process-level tests against a real registry snapshot.
|
|
## Set ADDRKIT_E2E_REGISTRY to a Bulk NDJSON dump (and optionally
|
|
## ADDRKIT_E2E_LOG to an EДДС address log). Data is never copied into the repo.
|
|
e2e:
|
|
@test -n "$(ADDRKIT_E2E_REGISTRY)" || { \
|
|
echo "set ADDRKIT_E2E_REGISTRY=/path/to/address_registry.ndjson" >&2; \
|
|
exit 1; \
|
|
}
|
|
$(GO) test -tags e2e -count=1 -v ./test/e2e
|
|
|
|
## fmt: format all Go sources
|
|
fmt:
|
|
gofmt -l -w .
|
|
|
|
## tidy: sync go.mod/go.sum
|
|
tidy:
|
|
$(GO) mod tidy
|
|
|
|
## run: build and start the service with the local config
|
|
run: build
|
|
$(BIN_DIR)/addrkitd -config config.json
|
|
|
|
## seed: build registry.db from a registry dump (override IN=/OUT=/CITY=/CITIES=)
|
|
IN ?= registry.ndjson
|
|
OUT ?= registry.db
|
|
CITY ?=
|
|
CITIES ?=
|
|
seed:
|
|
$(BIN_DIR)/addrkit seed -in $(IN) -out $(OUT) \
|
|
$(if $(CITY),-city "$(CITY)") $(if $(CITIES),-cities "$(CITIES)")
|
|
|
|
## clean: remove build artifacts
|
|
clean:
|
|
rm -rf $(BIN_DIR)
|