Mirror the `just check-demos` recipe as a Make target so the anchored-demo checker is reachable from the repo's canonical build tool (Makefile), not only the auxiliary justfile. Both delegate to scripts/ci/check-spec-demo-anchors.sh.
59 lines
2.1 KiB
Makefile
59 lines
2.1 KiB
Makefile
GO ?= go
|
|
EXECUTABLE := forgejo-mcp
|
|
COMMIT ?= $(shell git rev-parse --short HEAD)
|
|
VERSION ?= $(shell v=$$(git describe --tags --exact-match 2>/dev/null) && echo "$$v" | sed 's/^v//' || echo "$$(git describe --tags --abbrev=0 2>/dev/null | sed 's/^v//')-dev+$(COMMIT)")
|
|
LDFLAGS := -X "main.Version=$(VERSION)"
|
|
|
|
.DEFAULT_GOAL := help
|
|
|
|
## help: show available make targets
|
|
.PHONY: help
|
|
help:
|
|
@echo "Usage: make <target>"
|
|
@echo ""
|
|
@echo "Targets:"
|
|
@awk 'BEGIN {FS=":"} /^## / {sub(/^## /,""); printf " \033[36m%-12s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
|
|
|
## build: build the forgejo-mcp binary
|
|
.PHONY: build
|
|
build:
|
|
$(GO) build -v -ldflags '-s -w $(LDFLAGS)' -o $(EXECUTABLE)
|
|
|
|
## vendor: tidy and verify module dependencies
|
|
.PHONY: vendor
|
|
vendor:
|
|
@echo 'Tidying and verifying module dependencies...'
|
|
go mod tidy
|
|
go mod verify
|
|
|
|
## container: build container image using podman
|
|
IMAGE_NAME ?= forgejo-mcp
|
|
IMAGE_TAG ?= $(shell git describe --tags --abbrev=0 2>/dev/null | sed 's/^v//' || echo "latest")
|
|
|
|
.PHONY: container
|
|
container:
|
|
podman build --build-arg VERSION=$(VERSION) -t $(IMAGE_NAME):$(IMAGE_TAG) -f Containerfile .
|
|
|
|
## mcpb: build the Claude Desktop Extension (.mcpb) for the host platform
|
|
GOOS ?= $(shell $(GO) env GOOS)
|
|
GOARCH ?= $(shell $(GO) env GOARCH)
|
|
MCPB_OUT ?= dist/forgejo-mcp_$(VERSION)_$(GOOS)_$(GOARCH).mcpb
|
|
|
|
.PHONY: mcpb
|
|
mcpb: build
|
|
@command -v jq >/dev/null || { echo "jq is required" >&2; exit 1; }
|
|
@command -v npx >/dev/null || { echo "npx (Node.js) is required" >&2; exit 1; }
|
|
@mkdir -p dist extension/bin
|
|
cp $(EXECUTABLE) extension/bin/forgejo-mcp
|
|
chmod +x extension/bin/forgejo-mcp
|
|
cp extension/manifest.json extension/manifest.json.orig
|
|
@trap 'mv -f extension/manifest.json.orig extension/manifest.json 2>/dev/null || true' EXIT; \
|
|
jq --arg v "$(VERSION)" '.version=$$v' extension/manifest.json > extension/manifest.json.tmp && \
|
|
mv extension/manifest.json.tmp extension/manifest.json && \
|
|
npx -y @anthropic-ai/mcpb pack extension/ "$(MCPB_OUT)"
|
|
@echo "Built $(MCPB_OUT)"
|
|
|
|
## check-demos: validate anchored Showboat demos against their specs
|
|
.PHONY: check-demos
|
|
check-demos:
|
|
./scripts/ci/check-spec-demo-anchors.sh
|