Two-stage build: golang:1.25-alpine builder, alpine:3.21 runtime. Produces a minimal container image for mcp-master. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
44 lines
1011 B
Makefile
44 lines
1011 B
Makefile
.PHONY: build test vet lint proto proto-lint clean all
|
|
|
|
LDFLAGS := -trimpath -ldflags="-s -w -X main.version=$(shell git describe --tags --always --dirty)"
|
|
|
|
mcp:
|
|
CGO_ENABLED=0 go build $(LDFLAGS) -o mcp ./cmd/mcp
|
|
|
|
mcp-agent:
|
|
CGO_ENABLED=0 go build $(LDFLAGS) -o mcp-agent ./cmd/mcp-agent
|
|
|
|
mcp-master:
|
|
CGO_ENABLED=0 go build $(LDFLAGS) -o mcp-master ./cmd/mcp-master
|
|
|
|
build:
|
|
go build ./...
|
|
|
|
test:
|
|
go test ./...
|
|
|
|
vet:
|
|
go vet ./...
|
|
|
|
lint:
|
|
golangci-lint run ./...
|
|
|
|
proto:
|
|
protoc --go_out=. --go_opt=module=git.wntrmute.dev/mc/mcp \
|
|
--go-grpc_out=. --go-grpc_opt=module=git.wntrmute.dev/mc/mcp \
|
|
proto/mcp/v1/*.proto
|
|
|
|
proto-lint:
|
|
buf lint
|
|
buf breaking --against '.git#branch=master,subdir=proto'
|
|
|
|
docker-master:
|
|
podman build -f Dockerfile.master \
|
|
--build-arg VERSION=$(shell git describe --tags --always --dirty) \
|
|
-t mcr.svc.mcp.metacircular.net:8443/mcp-master:$(shell git describe --tags --always --dirty) .
|
|
|
|
clean:
|
|
rm -f mcp mcp-agent mcp-master
|
|
|
|
all: vet lint test mcp mcp-agent mcp-master
|