* docs: add specification for production readiness & website launch Covers DevOps hooks, CI/CD, Prometheus observability, Docker/Helm deployment, and synapbus.dev website with documentation and blog. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add implementation plan and research for production readiness Covers 5 workstreams: git hooks, CI/CD, observability, deployment artifacts, and website. All constitution gates pass. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add pre-commit and pre-push git hooks Pre-commit runs go vet, golangci-lint (optional), and fast tests. Pre-push runs full test suite and build verification. Installable via `make hooks`. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ci: add GitHub Actions for PR checks and releases ci.yml: lint, test, build on PRs to main. release.yml: multi-platform binaries + Docker image on version tags. Targets: linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64. Docker pushed to ghcr.io/smart-mcp-proxy/synapbus. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add Dockerfile, docker-compose, and Helm chart Multi-stage Docker build (node + golang + scratch), ~30MB image. docker-compose.yml for local development with volume persistence. Helm chart with configurable Deployment, Service, PVC, Ingress, and Prometheus ServiceMonitor. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add Prometheus metrics and Kubernetes health endpoints Add internal/metrics package with Prometheus collectors (HTTP requests, duration, messages, agents, connections) and chi-compatible middleware. Add internal/health package with /healthz (liveness) and /readyz (readiness with DB ping) endpoints. Wire into main.go with promhttp handler at /metrics. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: update Go version to 1.25, fix Docker build issues - Update Dockerfile golang image from 1.23 to 1.25 (matches go.mod) - Add tzdata package for timezone support in scratch image - Use npm install --legacy-peer-deps for web frontend build - Update CI/release workflows to use Go 1.25 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: resolve CI failures - golangci-lint v2 and npm peer deps - Upgrade golangci-lint-action to v7 with v2.1 (supports Go 1.25) - Use npm install --legacy-peer-deps instead of npm ci for web builds Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: replace golangci-lint with go vet (golangci-lint doesn't support Go 1.25 yet) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
41 lines
911 B
Makefile
41 lines
911 B
Makefile
.PHONY: build test dev web clean lint hooks
|
|
|
|
BINARY := synapbus
|
|
MODULE := github.com/smart-mcp-proxy/synapbus
|
|
BUILD_DIR := bin
|
|
LDFLAGS := -s -w
|
|
|
|
CGO_ENABLED := 0
|
|
|
|
build:
|
|
CGO_ENABLED=$(CGO_ENABLED) go build -ldflags "$(LDFLAGS)" -o $(BUILD_DIR)/$(BINARY) ./cmd/synapbus
|
|
|
|
test:
|
|
CGO_ENABLED=$(CGO_ENABLED) go test ./... -v -count=1
|
|
|
|
dev:
|
|
CGO_ENABLED=$(CGO_ENABLED) go run ./cmd/synapbus serve
|
|
|
|
web:
|
|
cd web && npm install && npm run build
|
|
rm -rf internal/web/dist
|
|
cp -r web/build internal/web/dist
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|
|
rm -rf web/node_modules web/build
|
|
rm -rf data
|
|
|
|
lint:
|
|
golangci-lint run ./...
|
|
|
|
hooks:
|
|
@echo "Installing git hooks..."
|
|
@mkdir -p scripts/hooks
|
|
@chmod +x scripts/hooks/pre-commit scripts/hooks/pre-push
|
|
@ln -sf ../../scripts/hooks/pre-commit .git/hooks/pre-commit
|
|
@ln -sf ../../scripts/hooks/pre-push .git/hooks/pre-push
|
|
@echo "✅ Git hooks installed"
|
|
|
|
.DEFAULT_GOAL := build
|