Files
addrkit/Makefile
T
Maksim Totmin 9b85df9f6c test(e2e): add a prod-scale Novosibirsk suite
- 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)
2026-10-27 14:36:08 +07:00

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)