diff --git a/make/debug.mk b/make/debug.mk new file mode 100644 index 0000000..d547481 --- /dev/null +++ b/make/debug.mk @@ -0,0 +1,9 @@ +## +# DEBUG + +.PHONY: debug +debug: + $(MAKE) DEBUG=true + +.PHONY: debug-% +debug-%: context-% ; diff --git a/make/def.mk b/make/def.mk index 772cf8d..aa51ee7 100644 --- a/make/def.mk +++ b/make/def.mk @@ -11,6 +11,8 @@ APP_PATH ?= /${APP_PATH_PREFIX} APP_SCHEME ?= https APP_URI ?= ${APP_HOST}${APP_PATH} APP_URL ?= ${APP_SCHEME}://${APP_URI} +APPS ?= $(if $(MONOREPO),$(sort $(patsubst $(MONOREPO_DIR)/%/.git,%,$(wildcard $(MONOREPO_DIR)/*/.git)))) +APPS_NAME ?= $(foreach app,$(APPS),$(or $(shell awk -F '=' '$$1 == "APP" {print $$2}' $(or $(wildcard $(MONOREPO_DIR)/$(app)/.env),$(wildcard $(MONOREPO_DIR)/$(app)/.env.$(ENV)),$(MONOREPO_DIR)/$(app)/.env.dist) 2>/dev/null),$(app))) BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null) CMDS ?= exec exec:% exec@% run run:% run@% COMMIT ?= $(shell git rev-parse $(BRANCH) 2>/dev/null) @@ -92,9 +94,6 @@ endif # include .env files include $(wildcard $(ENV_FILE)) -# include *.mk -include $(wildcard $(MAKE_DIR)/def.*.mk) -include $(foreach subdir,$(MAKE_SUBDIRS),$(wildcard $(MAKE_DIR)/$(subdir)/def.mk $(MAKE_DIR)/$(subdir)/def.*.mk)) ifeq ($(HOST_SYSTEM),DARWIN) ifneq ($(DOCKER),true) diff --git a/make/help.mk b/make/help.mk index 991b45b..96b24eb 100644 --- a/make/help.mk +++ b/make/help.mk @@ -23,17 +23,14 @@ blank1 blank2: ## Show available targets target: printf "${COLOR_BROWN}Targets:${COLOR_RESET}\n" - awk 'BEGIN {FS = ":.*?## "}; $$0 ~ /^[a-zA-Z_-]+:.*?## .*$$/ {printf "${COLOR_BLUE}%-30s${COLOR_RESET} %s\n", $$1, $$2}' $(MAKEFILE_LIST) + awk 'BEGIN {FS = ":.*?## "}; $$0 ~ /^[a-zA-Z_-]+:.*?## .*$$/ {printf "${COLOR_BLUE}%-31s${COLOR_RESET} %s\n", $$1, $$2}' $(MAKEFILE_LIST) .PHONY: context ## Show current context context: printf "${COLOR_BROWN}Context:${COLOR_RESET}\n" - $(MAKE) $(CONTEXT) + $(MAKE) $(foreach var,$(CONTEXT),context-$(var)) -.PHONY: $(CONTEXT) -$(CONTEXT): - @printf "${COLOR_BLUE}%-30s${COLOR_RESET} ${COLOR_GREEN}%s${COLOR_RESET}\n" $@ "$($@)" - -.PHONY: print-% -print-%: ; @printf "${COLOR_BLUE}%-30s${COLOR_RESET} ${COLOR_GREEN}%s${COLOR_RESET}\n" $* "$($*)" +.PHONY: context--% +context-%: + printf "${COLOR_BLUE}%-31s${COLOR_RESET} ${COLOR_GREEN}%s${COLOR_RESET}\n" $* "$($*)" diff --git a/make/include.mk b/make/include.mk index 0d409e7..83e9fbc 100644 --- a/make/include.mk +++ b/make/include.mk @@ -1,11 +1,11 @@ # MAKE_DIR: directory path of this file MAKE_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) # MAKE_FILES: list of first files to load -MAKE_FILES := env.mk def.mk +MAKE_FILES := env.mk def.mk $(wildcard def.*.mk) # include *.mk files ## $(MAKE_DIR)/$(MAKE_FILES) $(MAKE_DIR)/*.mk -include $(wildcard $(patsubst %,$(MAKE_DIR)/%,$(MAKE_FILES))) $(filter-out $(wildcard $(patsubst %,$(MAKE_DIR)/%,include.mk def.*.mk $(MAKE_FILES))),$(wildcard $(MAKE_DIR)/*.mk)) -## $(MAKE_DIR)/*/*.mk -include $(foreach subdir,$(MAKE_SUBDIRS),$(filter-out $(wildcard $(MAKE_DIR)/$(subdir)/def.mk $(MAKE_DIR)/$(subdir)/def.*.mk),$(wildcard $(MAKE_DIR)/$(subdir)/*.mk))) -## *.mk */*.mk -include $(wildcard *.mk) $(filter-out $(wildcard $(MAKE_DIR)/*.mk),$(wildcard */def.mk */def.*.mk) $(filter-out $(wildcard */def.mk */def.*.mk),$(wildcard */*.mk))) +include $(wildcard $(patsubst %,$(MAKE_DIR)/%,$(MAKE_FILES))) $(filter-out $(wildcard $(patsubst %,$(MAKE_DIR)/%,$(notdir $(lastword $(MAKEFILE_LIST))) $(MAKE_FILES))),$(wildcard $(MAKE_DIR)/*.mk)) +## $(MAKE_DIR)/*/def.mk $(MAKE_DIR)/*/def.*.mk $(MAKE_DIR)/*/*.mk +include $(foreach subdir,$(MAKE_SUBDIRS),$(wildcard $(MAKE_DIR)/$(subdir)/def.mk $(MAKE_DIR)/$(subdir)/def.*.mk) $(filter-out $(wildcard $(MAKE_DIR)/$(subdir)/def.mk $(MAKE_DIR)/$(subdir)/def.*.mk),$(wildcard $(MAKE_DIR)/$(subdir)/*.mk))) +## def.mk def.*.mk *.mk */def.mk */def.*.mk */*.mk +include $(wildcard def.mk def.*.mk) $(filter-out $(wildcard def.mk def.*.mk),$(wildcard *.mk)) $(filter-out $(wildcard $(MAKE_DIR)/*.mk),$(wildcard */def.mk */def.*.mk) $(filter-out $(wildcard */def.mk */def.*.mk),$(wildcard */*.mk))) diff --git a/make/monorepo/def.drone.mk b/make/monorepo/def.drone.mk index 5b46b3f..9a770f0 100644 --- a/make/monorepo/def.drone.mk +++ b/make/monorepo/def.drone.mk @@ -9,7 +9,6 @@ COMMIT_AFTER := $(DRONE_TAG) COMMIT_BEFORE := $(shell git describe --abbrev=0 --tags $(DRONE_TAG)^ 2>/dev/null) endif APPS_IMPACTED := $(shell git diff --name-only $(COMMIT_BEFORE) $(COMMIT_AFTER) 2>/dev/null |awk -F '/' 'NF>1 && !seen[$$1]++ {print $$1}') -# prevent drone to make down myos -APPS := $(if $(filter-out down,$(MAKECMDGOALS)),$(filter $(MYOS),$(APPS_IMPACTED))) $(sort $(filter-out $(DIRS) $(MYOS),$(APPS_IMPACTED))) +APPS := $(or $(APPS_IMPACTED),$(APPS)) CONTEXT += DRONE_BRANCH DRONE_BUILD_EVENT DRONE_BUILD_NUMBER DRONE_COMMIT_AFTER DRONE_COMMIT_AUTHOR DRONE_COMMIT_AUTHOR_EMAIL DRONE_COMMIT_BEFORE DRONE_COMMIT_REF GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME endif diff --git a/make/monorepo/def.mk b/make/monorepo/def.mk index 9d7a06c..116bf17 100644 --- a/make/monorepo/def.mk +++ b/make/monorepo/def.mk @@ -1,7 +1,5 @@ -APPS ?= $(MYOS) $(sort $(filter-out $(DIRS) $(MYOS), $(patsubst %/,%,$(wildcard */)) )) -APPS_NAME ?= $(foreach app,$(APPS),$(or $(shell awk -F '=' '$$1 == "APP" {print $$2}' $(or $(wildcard $(app)/.env),$(wildcard $(app)/.env.$(ENV)),$(app)/.env.dist) 2>/dev/null),$(app))) CMDS += copy master-tag release release-check release-create release-finish subrepo-push update-subrepo -CONTEXT += APPS APPS_NAME ENV RELEASE_INSTALL +CONTEXT += APPS ENV RELEASE_INSTALL DIRS ?= $(MAKE_DIR) $(PARAMETERS) $(SHARED) RELEASE_UPGRADE ?= $(filter v%, $(shell git tag -l 2>/dev/null |sort -V |awk '/$(RELEASE_INSTALL)/,0')) RELEASE_VERSION ?= $(firstword $(subst -, ,$(VERSION))) diff --git a/make/infra.mk b/make/myos.mk similarity index 100% rename from make/infra.mk rename to make/myos.mk