60 lines
1.9 KiB
Makefile
60 lines
1.9 KiB
Makefile
SERVICE_A := ./service_a
|
|
SERVICE_B := ./service_b
|
|
PG_VERSION := 17.6-alpine3.22
|
|
DB_NAME := meteologica
|
|
|
|
.PHONY: dockerize-db
|
|
# Remove and create a development database.
|
|
dockerize-db:
|
|
docker rm -f $(DB_NAME)
|
|
docker run --name $(DB_NAME) -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=developer -e POSTGRES_DB=$(DB_NAME) -p 5432:5432 -d postgres:$(PG_VERSION)
|
|
sleep 10
|
|
make migrateup
|
|
|
|
.PHONY: migrateup
|
|
# Migrate all schemas, triggers and data located in database/migrations.
|
|
migrateup:
|
|
go run -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest -path $(SERVICE_A)/server/database/migrations -database "postgresql://developer:secret@localhost:5432/$(DB_NAME)?sslmode=disable" -verbose up
|
|
|
|
.PHONY: run
|
|
# Run all services
|
|
run:
|
|
cd $(SERVICE_A) && go run ./server/main.go & cd $(SERVICE_B) && go run ./server/main.go
|
|
|
|
.PHONY: run-a
|
|
# Run service_a only
|
|
run-a:
|
|
cd $(SERVICE_A) && go run ./server/main.go
|
|
|
|
.PHONY: run-b
|
|
# Run service_b only
|
|
run-b:
|
|
cd $(SERVICE_B) && go run ./server/main.go
|
|
|
|
.PHONY: test
|
|
# Run all tests with coverage
|
|
test:
|
|
@echo "Running tests for service_a..."
|
|
cd $(SERVICE_A) && go test ./... -coverprofile=../service_a_coverage.out
|
|
@echo "Running tests for service_b..."
|
|
cd $(SERVICE_B) && go test ./... -coverprofile=../service_b_coverage.out
|
|
@echo "\nCoverage reports generated:"
|
|
@echo " - service_a_coverage.out"
|
|
@echo " - service_b_coverage.out"
|
|
|
|
.PHONY: coverage
|
|
# View coverage reports in browser
|
|
coverage:
|
|
@echo "Opening service_a coverage report..."
|
|
cd $(SERVICE_A) && go tool cover -html=../service_a_coverage.out
|
|
@echo "Opening service_b coverage report..."
|
|
cd $(SERVICE_B) && go tool cover -html=../service_b_coverage.out
|
|
|
|
.PHONY: coverage-func
|
|
# Show coverage summary in terminal
|
|
coverage-func:
|
|
@echo "Service A Coverage:"
|
|
cd $(SERVICE_A) && go tool cover -func=../service_a_coverage.out
|
|
@echo "\nService B Coverage:"
|
|
cd $(SERVICE_B) && go tool cover -func=../service_b_coverage.out
|