73 lines
1.9 KiB
Makefile
73 lines
1.9 KiB
Makefile
# Set GOPATH from `go env`
|
|
GOPATH:=$(shell go env GOPATH)
|
|
MIGRATIONS_DIR:=./database/migrations
|
|
SCHEMA_DIR:=./database/schema
|
|
DEV_URL:=docker://postgres/18-alpine/test
|
|
DATABASE_URL:=postgres://alinmeuser:password@localhost:5430/alinmedb?sslmode=disable
|
|
|
|
.PHONY: init test generate buf
|
|
init:
|
|
@echo "Initializing project..."
|
|
make buf
|
|
|
|
buf:
|
|
buf generate --verbose
|
|
# Run unit tests
|
|
test:
|
|
@echo "Running tests..."
|
|
go test ./... -v
|
|
|
|
# Generate code using go generate
|
|
generate:
|
|
@echo "Running go generate..."
|
|
go generate ./...
|
|
|
|
env:
|
|
cp -rf ./.env-example ./.env
|
|
|
|
lint:
|
|
@ test -e $(LINT) || $(LINT_DOWNLOAD)
|
|
@ $(LINT) --version
|
|
@ $(LINT) run
|
|
|
|
protoc:
|
|
@ protoc \
|
|
--go_out=api --go_opt=paths=source_relative \
|
|
--go-grpc_out=api --go-grpc_opt=paths=source_relative \
|
|
pb/*.proto
|
|
|
|
swagger:
|
|
@echo Starting swagger generating
|
|
swag init -g main.go
|
|
|
|
# Start Postgres in Docker (required before migrate-apply)
|
|
docker-up:
|
|
@echo "Starting Postgres in Docker..."
|
|
docker compose up -d pg
|
|
@echo "Waiting for Postgres to be ready..."
|
|
@until docker compose exec pg pg_isready -U alinmeuser -d alinmedb 2>/dev/null; do sleep 1; done
|
|
@echo "Postgres is ready."
|
|
|
|
# Apply migrations to local Postgres
|
|
migrate-apply:
|
|
@echo "Applying migrations..."
|
|
atlas migrate apply --dir "file://$(MIGRATIONS_DIR)" --url "$(DATABASE_URL)"
|
|
|
|
# Run Docker + migrations (use for local setup)
|
|
migrate-local: docker-up migrate-apply
|
|
@echo "Migrations applied successfully."
|
|
|
|
# Run mock OAuth server for local dev (no Docker - use when testing OAuth flow)
|
|
mock-oauth:
|
|
@echo "Starting mock OAuth server on http://localhost:9999"
|
|
go run ./cmd/mock-oauth
|
|
|
|
migrate-diff:
|
|
@echo "Generating migration diff..."
|
|
atlas migrate diff --dir "file://$(MIGRATIONS_DIR)" --to "file://$(SCHEMA_DIR)" --dev-url "$(DEV_URL)"
|
|
|
|
# Update atlas.sum with new migration checksums (run after adding migrations)
|
|
migrate-hash:
|
|
@echo "Updating migration checksums..."
|
|
atlas migrate hash --dir "file://$(MIGRATIONS_DIR)"
|