chore: initial release v0.1.0
forge-toolkit: хелперы для разработки MCP-серверов на Go. - toolkit: args/schema/result/env/probe/server - toolkit/validate: валидаторы синтаксиса - configreload: live-reload конфига по контент-хэшу - docs: ARCHITECTURE, quickstart, mcp-contract - template/ и examples/hello-tool/ - CI (Gitea Actions), лицензия Apache-2.0
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
name: ci
|
||||
|
||||
# Гейт качества на PR и push в main: vet, тесты с race-детектором, линт,
|
||||
# gofmt и карантин зависимостей тулкита.
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: backend
|
||||
container: golang:1.27
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: vet
|
||||
run: go vet ./...
|
||||
- name: test (race)
|
||||
run: go test -race ./... -count=1
|
||||
|
||||
lint:
|
||||
runs-on: backend
|
||||
container: golang:1.27
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: install golangci-lint
|
||||
run: go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.13.2
|
||||
- name: lint
|
||||
run: $(go env GOPATH)/bin/golangci-lint run ./...
|
||||
- name: gofmt
|
||||
run: |
|
||||
unformatted=$(gofmt -l .)
|
||||
[ -z "$unformatted" ] || { echo "gofmt: требуется форматирование: $unformatted"; exit 1; }
|
||||
- name: toolkit dependency quarantine
|
||||
run: |
|
||||
direct=$(go list -m -f '{{if not .Main}}{{if not .Indirect}}{{.Path}}{{end}}{{end}}' all)
|
||||
allowed='^(github.com/modelcontextprotocol/go-sdk|gopkg.in/yaml.v3|github.com/BurntSushi/toml)$'
|
||||
bad=$(echo "$direct" | grep -vE "$allowed" | grep -v '^$')
|
||||
if [ -n "$bad" ]; then
|
||||
echo "недопустимые прямые зависимости:"; echo "$bad"; exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user