# Команды разработки — одинаковые на любой машине. # На Windows без make те же пункты продублированы в README как голые go-команды. # Проверить, что цели синхронны с README, можно глазами: список ниже — канон. .PHONY: run build test race vet lint fmt swag migrate seed up down tidy run: ## запустить сервер (собирает и поднимает cmd/api) go run ./cmd/api build: ## собрать все пакеты go build ./... test: ## тесты; без DATABASE_URL интеграционные скипаются — не обманывайтесь go test ./... # race требует CGO и C-компилятор: в CI (ubuntu) они есть, на Windows # без MinGW команда упадёт с «-race requires cgo» — там гонки ищет CI. race: ## тесты с детектором гонок (то же, что делает CI) go test -race ./... vet: ## быстрая статическая проверка go vet ./... lint: ## полный линтер (конфиг — .golangci.yml) golangci-lint run ./... fmt: ## отформатировать код gofmt -w . swag: ## перегенерировать Swagger из аннотаций (docs/) swag init -g cmd/api/main.go -o docs --parseInternal migrate: ## накатить миграции без запуска API (нужно и CI, и перед тестами) go run ./cmd/migrate seed: ## демо-данные для ручной проверки (ТОЛЬКО локальная/демо-база) go run ./cmd/seed --yes up: ## поднять локальную БД в docker (порт 5433, см. compose.yaml) docker compose up -d --wait down: ## остановить локальную БД; данные остаются в томе pgdata docker compose down tidy: ## привести go.mod/go.sum в порядок go mod tidy