50 lines
1.5 KiB
Makefile
50 lines
1.5 KiB
Makefile
# omnichannel-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-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-mcp .
|
|
python3 examples/demo/demo.py
|
|
|
|
# E2E: то же плюс реальный config-agent, исполняющий задачи деплоя.
|
|
e2e:
|
|
docker compose -f examples/demo/docker-compose.yml up -d
|
|
$(GO) build -o omnichannel-mcp .
|
|
python3 examples/demo/e2e.py
|
|
|
|
demo-down:
|
|
docker compose -f examples/demo/docker-compose.yml down -v
|