veza/make/build.mk

43 lines
2.4 KiB
Makefile
Raw Normal View History

2026-02-07 19:36:48 +00:00
# ==============================================================================
# BUILD (Docker images and native for Incus)
# ==============================================================================
2026-03-05 18:35:57 +00:00
.PHONY: build build-backend-api build-stream-server build-web
2026-02-07 19:36:48 +00:00
.PHONY: build-all build-all-native build-service
2026-03-05 18:35:57 +00:00
build: build-all ## [HIGH] Build all services (alias)
2026-02-07 19:36:48 +00:00
build-backend-api: ## [LOW] Build Go backend Docker image
@$(ECHO_CMD) "${BLUE}🔨 Building backend-api...${NC}"
@docker build -t $(PROJECT_NAME)-backend-api:latest -f $(ROOT)/$(SERVICE_DIR_backend-api)/Dockerfile.production $(ROOT)/$(SERVICE_DIR_backend-api) || \
($(ECHO_CMD) "${YELLOW}Using local Dockerfile...${NC}" && \
docker build -t $(PROJECT_NAME)-backend-api:latest -f $(ROOT)/$(SERVICE_DIR_backend-api)/Dockerfile $(ROOT)/$(SERVICE_DIR_backend-api))
build-stream-server: ## [LOW] Build Rust stream server Docker image
@$(ECHO_CMD) "${BLUE}🔨 Building stream-server...${NC}"
@docker build -t $(PROJECT_NAME)-stream-server:latest -f $(ROOT)/$(SERVICE_DIR_stream-server)/Dockerfile.production $(ROOT)/$(SERVICE_DIR_stream-server) || \
docker build -t $(PROJECT_NAME)-stream-server:latest -f $(ROOT)/$(SERVICE_DIR_stream-server)/Dockerfile $(ROOT)/$(SERVICE_DIR_stream-server))
build-web: ## [LOW] Build web frontend Docker image
@$(ECHO_CMD) "${BLUE}🔨 Building web...${NC}"
@docker build -t $(PROJECT_NAME)-web:latest -f $(ROOT)/$(SERVICE_DIR_web)/Dockerfile.production $(ROOT)/$(SERVICE_DIR_web) || \
docker build -t $(PROJECT_NAME)-web:latest -f $(ROOT)/$(SERVICE_DIR_web)/Dockerfile $(ROOT)/$(SERVICE_DIR_web))
build-all: ## [MID] Build all services (Docker images)
@$(ECHO_CMD) "${BLUE}🔨 Building all services...${NC}"
@$(MAKE) -s build-backend-api
@$(MAKE) -s build-stream-server
@$(MAKE) -s build-web
@$(ECHO_CMD) "${GREEN}✅ All services built.${NC}"
build-all-native: ## [MID] Build all services natively (for Incus)
@$(ECHO_CMD) "${BLUE}🔨 Building all services natively...${NC}"
@$(INCUS_SCRIPTS)/build-native.sh all
@$(ECHO_CMD) "${GREEN}✅ All services built natively.${NC}"
build-service: ## [MID] Build a specific service (usage: make build-service SERVICE=backend-api)
@if [ -z "$(SERVICE)" ]; then $(ECHO_CMD) "${RED}❌ Please specify SERVICE=name${NC}"; exit 1; fi
@$(ECHO_CMD) "${BLUE}🔨 Building $(SERVICE)...${NC}"
@$(MAKE) -s build-$(SERVICE)
@$(ECHO_CMD) "${GREEN}$(SERVICE) built.${NC}"