axe/Makefile

47 lines
2.0 KiB
Makefile
Raw Normal View History

2026-10-18 19:07:25 +00:00
# Команды разработки — одинаковые на любой машине.
# На 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