47 lines
2.0 KiB
Makefile
47 lines
2.0 KiB
Makefile
|
|
# Команды разработки — одинаковые на любой машине.
|
|||
|
|
# На 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
|