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
|