# Makefile helper functions for pack # COMMANDS ?= $(filter-out %.md, $(wildcard ${ROOT_DIR}/cmd/*)) BINS ?= $(foreach cmd,${COMMANDS},$(notdir ${cmd})) ifeq (${COMMANDS},) $(error Could not determine COMMANDS, set ROOT_DIR or run in source dir) endif ifeq (${BINS},) $(error Could not determine BINS, set ROOT_DIR or run in source dir) endif .PHONY: pack.all pack.all: $(addprefix pack.handle., $(addprefix $(PLATFORM)., $(BINS))) pack.web .PHONY: pack.handle.% pack.handle.%: $(eval COMMAND := $(word 2,$(subst ., ,$*))) $(eval PLATFORM := $(word 1,$(subst ., ,$*))) $(eval OS := $(word 1,$(subst _, ,$(PLATFORM)))) $(eval ARCH := $(word 2,$(subst _, ,$(PLATFORM)))) @echo "===========> Pack binary $(COMMAND) $(VERSION) for $(OS) $(ARCH)" $(Docker) build -t $(DOCKER_REG)/$(COMMAND)-$(OS)-$(ARCH):latest -f $(ROOT_DIR)/script/dockerfile/$(COMMAND)-$(OS)-$(ARCH).dockerfile --build-arg commit_hash="$(VERSION)" --platform=$(OS)/$(ARCH) $(ROOT_DIR) $(Docker) tag $(DOCKER_REG)/$(COMMAND)-$(OS)-$(ARCH):latest $(DOCKER_REG)/$(COMMAND)-$(OS)-$(ARCH):$(VERSION) $(Docker) push $(DOCKER_REG)/$(COMMAND)-$(OS)-$(ARCH):latest @echo "===========> Pushed: $(DOCKER_REG)/$(COMMAND)-$(OS)-$(ARCH):latest" $(Docker) push $(DOCKER_REG)/$(COMMAND)-$(OS)-$(ARCH):$(VERSION) @echo "===========> Pushed: $(DOCKER_REG)/$(COMMAND)-$(OS)-$(ARCH):$(VERSION)" #.PHONY: pack.web #pack.web: # @echo "===========> Pack Web Static Files" # $(Docker) build -t $(DOCKER_REG)/web-nginx:latest -f $(ROOT_DIR)/script/dockerfile/nginx.dockerfile --build-arg commit_hash="$(VERSION)" $(ROOT_DIR) # $(Docker) tag $(DOCKER_REG)/web-nginx:latest $(DOCKER_REG)/web-nginx:$(VERSION) # $(Docker) push $(DOCKER_REG)/web-nginx:latest # @echo "===========> Pushed: $(DOCKER_REG)/web-nginx:latest" # $(Docker) push $(DOCKER_REG)/web-nginx:$(VERSION) # @echo "===========> Pushed: $(DOCKER_REG)/web-nginx:$(VERSION)"