initial commit
This commit is contained in:
72
Makefile
Normal file
72
Makefile
Normal file
@@ -0,0 +1,72 @@
|
||||
# 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)"
|
||||
Reference in New Issue
Block a user