/
codespawn
/
tgstream
Обзор
Документация
Войти
/
codespawn
/
tgstream
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
16
CI/CD
Аналитика
Безопасность
master
Makefile
66 строк
3 KB
codespawn
Запрос на слияние 'feat/koanf-config' (
#9
) из feat/koanf-config в master
25 июл 2026, 19:44
Верифицирован
25 июл 2026, 19:44
98dafb0
Код
Авторство
О чём код?
.PHONY: test test-race test-verbose lint golden vet fmt tidy build clean release release-snapshot ## test: прогон всех тестов. test: go test ./... ## test-race: гонки (обязательно для FeedService/memorycache/rate-limiter). test-race: go test -race ./... ## test-verbose: подробный вывод. test-verbose: go test -v ./... ## lint: статика + архитектурная инварианта (depguard, L0). # Подхватывает golangci-lint из PATH, иначе из GOPATH/bin (куда его кладёт # `go install`). Если нигде нет — подсказывает, как поставить. GOLANGCI_LINT := $(shell command -v golangci-lint 2>/dev/null || echo $(shell go env GOPATH)/bin/golangci-lint) lint: @if [ -x "$(GOLANGCI_LINT)" ]; then \ "$(GOLANGCI_LINT)" run ./...; \ else \ echo "golangci-lint не найден. Установите:"; \ echo " go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest"; \ exit 1; \ fi ## golden: регенерация эталонных файлов (осознанный шаг, обзор diff'а). golden: UPDATE_GOLDEN=1 go test ./... vet: go vet ./... fmt: gofmt -s -w . tidy: go mod tidy # Версия для локальной сборки (lazy: вычисляются только для build; при релизе # их задаёт GoReleaser). Fallback — если git недоступен или нет коммитов. VERSION = $(shell git describe --tags --always --dirty 2>/dev/null || echo dev) COMMIT = $(shell git rev-parse --short HEAD 2>/dev/null || echo none) DATE = $(shell git log -1 --format=%cI 2>/dev/null || echo unknown) ## build: собирает бинарник в bin/tgstream с версией из git (см. internal/version). build: go build -ldflags "\ -X gitverse.ru/codespawn/tgstream/internal/version.Version=$(VERSION) \ -X gitverse.ru/codespawn/tgstream/internal/version.Commit=$(COMMIT) \ -X gitverse.ru/codespawn/tgstream/internal/version.Date=$(DATE)" \ -o bin/tgstream ./cmd/tgstream ## clean: удаляет собранные артефакты (bin/, dist/). clean: rm -rf bin/tgstream dist/ ## release: полный релиз через GoReleaser — по git-тегу, публикует GitHub Release. release: goreleaser release --clean ## release-snapshot: сборка всех платформ через GoReleaser без релиза и сети ## (проверка пайплайна/ldflags/архивов локально, тег не требуется). release-snapshot: goreleaser build --clean --snapshot