Files

50 lines
1.6 KiB
Makefile

# omnichannel-configserver-mcp — сборка, тесты, линт.
GO ?= go
GOLANGCI_LINT ?= golangci-lint
.PHONY: build test fmt lint tidy tidy-check ci demo e2e demo-down
# Бинарник модуля.
build:
$(GO) build -o omnichannel-configserver-mcp .
# Тесты с race-детектором (основной гейт).
test:
$(GO) test -race ./... -count=1
# Форматирование.
fmt:
gofmt -w .
# Статический анализ + проверка форматирования.
lint:
$(GOLANGCI_LINT) run ./...
@unformatted=$$(gofmt -l .); \
if [ -n "$$unformatted" ]; then echo "gofmt: нужно форматирование: $$unformatted"; exit 1; fi
tidy:
$(GO) mod tidy
# Проверка, что go.mod/go.sum в tidy-состоянии.
tidy-check:
@$(GO) mod tidy -diff >/dev/null 2>&1 || { echo "go.mod не tidy — запусти make tidy"; $(GO) mod tidy -diff; exit 1; }
@echo "tidy: ok"
# Локальный гейт (то же, что CI).
ci: build test lint tidy-check
# Демо: поднять локальный стенд и прогнать сквозной сценарий.
demo:
docker compose -f examples/demo/docker-compose.yml up -d
$(GO) build -o omnichannel-configserver-mcp .
python3 examples/demo/demo.py
# E2E: то же плюс реальный config-agent, исполняющий задачи деплоя.
e2e:
docker compose -f examples/demo/docker-compose.yml up -d
$(GO) build -o omnichannel-configserver-mcp .
python3 examples/demo/e2e.py
demo-down:
docker compose -f examples/demo/docker-compose.yml down -v