Boost Azure Demo

This commit is contained in:
MangoPig
2026-05-25 17:05:06 +01:00
parent 675285e99d
commit 4f79137d89
230 changed files with 43275 additions and 2644 deletions

View File

@@ -1,8 +1,10 @@
SHELL := /bin/bash
EARTHLY_ENV_CLEAN := env -u AI_REVIEW_ENDPOINT -u AI_REVIEW_API_KEY -u AI_REVIEW_MODEL
.DEFAULT_GOAL := help
.PHONY: help guard-dev-tag down dev dev-build dev-up
.PHONY: help guard-dev-tag down dev dev-build dev-up prod-a prod-a-build prod-a-up prod-a-down prod-a-config sqlc db-status db-up db-seed
FRONTEND_DIR := Frontend
FRONTEND_DIST_DIR := $(FRONTEND_DIR)/dist
@@ -10,6 +12,12 @@ BACKEND_DIR := Backend
BACKEND_TMP_DIR := $(BACKEND_DIR)/tmp
EARTHLY ?= earthly
COMPOSE ?= docker compose
PROD_A_TAG ?= latest
PROD_A_ENV_FILE ?= .env.prod-a
DATABASE_URL ?= postgres://boostai:boostai_dev_password@localhost:5439/boostai?sslmode=disable
MOCK_DATA_DIR ?= ../Mock-Data
GOOSE := go run github.com/pressly/goose/v3/cmd/goose@v3.26.0
SQLC := go run github.com/sqlc-dev/sqlc/cmd/sqlc@v1.30.0
help: ## Show this help message
@echo "Usage: make [target]"
@@ -28,11 +36,40 @@ down: ## Stop all servers and clean up temporary files
@rm -rf "$(BACKEND_TMP_DIR)" "$(FRONTEND_DIST_DIR)"
dev: guard-dev-tag ## Start the development server
@$(MAKE) dev-build DEV_TAG=$(DEV_TAG)
@$(MAKE) dev-up DEV_TAG=$(DEV_TAG)
dev-build: guard-dev-tag ## Build the development image for the frontend
@cd "$(FRONTEND_DIR)" && $(EARTHLY) +dev-image --REGISTRY="registry.mangopig.tech" --IMAGE_NAME="boost-ai/demo-frontend-dev" --TAG=$(DEV_TAG)
dev-up: guard-dev-tag ## Start the development server using docker compose
@$(EARTHLY_ENV_CLEAN) $(EARTHLY) "./$(FRONTEND_DIR)+dev-image" --IMAGE_NAME="boost-ai/demo-frontend-dev" --TAG=$(DEV_TAG)
@$(EARTHLY_ENV_CLEAN) $(EARTHLY) "./$(BACKEND_DIR)+dev-image" --IMAGE_NAME="boost-ai/demo-backend-dev" --TAG=$(DEV_TAG)
@DEV_TAG=$(DEV_TAG) $(COMPOSE) -f docker-compose.dev.yaml up -d --remove-orphans --force-recreate
dev-build: guard-dev-tag ## Build the development images for frontend and backend
@$(EARTHLY_ENV_CLEAN) $(EARTHLY) "./$(FRONTEND_DIR)+dev-image" --IMAGE_NAME="boost-ai/demo-frontend-dev" --TAG=$(DEV_TAG)
@$(EARTHLY_ENV_CLEAN) $(EARTHLY) "./$(BACKEND_DIR)+dev-image" --IMAGE_NAME="boost-ai/demo-backend-dev" --TAG=$(DEV_TAG)
dev-up: guard-dev-tag ## Start the development stack using docker compose
@DEV_TAG=$(DEV_TAG) $(COMPOSE) -f docker-compose.dev.yaml up -d --remove-orphans --force-recreate
prod-a: prod-a-build prod-a-up ## Build and start the prod-a stack
prod-a-build: ## Build the production prod-a images for frontend and backend
@$(EARTHLY_ENV_CLEAN) $(EARTHLY) "+frontend-prod-image" --IMAGE_NAME="boost-ai/demo-frontend-prod-a" --TAG=$(PROD_A_TAG)
@$(EARTHLY_ENV_CLEAN) $(EARTHLY) "./$(BACKEND_DIR)+prod-image" --IMAGE_NAME="boost-ai/demo-backend-prod-a" --TAG=$(PROD_A_TAG)
prod-a-up: ## Start the prod-a stack using docker compose
@$(COMPOSE) --env-file $(PROD_A_ENV_FILE) -f docker-compose.prod-a.yaml up -d --remove-orphans --force-recreate
prod-a-down: ## Stop the prod-a stack
@$(COMPOSE) --env-file $(PROD_A_ENV_FILE) -f docker-compose.prod-a.yaml down --remove-orphans
prod-a-config: ## Render the prod-a docker compose configuration
@$(COMPOSE) --env-file $(PROD_A_ENV_FILE) -f docker-compose.prod-a.yaml config
sqlc: ## Generate typed SQL code for the backend
@cd "$(BACKEND_DIR)" && $(SQLC) generate -f db/sqlc.yaml
db-status: ## Show goose migration status for the backend database
@cd "$(BACKEND_DIR)" && $(GOOSE) -dir db/migrations postgres "$(DATABASE_URL)" status
db-up: ## Run pending goose migrations against the backend database
@cd "$(BACKEND_DIR)" && $(GOOSE) -dir db/migrations postgres "$(DATABASE_URL)" up
db-seed: ## Reset and seed the backend database from Mock-Data JSON
@cd "$(BACKEND_DIR)" && DATABASE_URL="$(DATABASE_URL)" MOCK_DATA_DIR="$(MOCK_DATA_DIR)" GOTOOLCHAIN=local go run ./cmd/seed