Initial commit: omnichannel-mcp — MCP-сервер управления платформой Omnichannel
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user