wip
This commit is contained in:
parent
e4deca629e
commit
908232e85f
|
@ -27,7 +27,7 @@ DOCKER_BUILD_VARS ?= APP BRANCH DOCKER_GID DOCKER_REPOSITORY GID G
|
||||||
DOCKER_COMPOSE_DOWN_OPTIONS ?=
|
DOCKER_COMPOSE_DOWN_OPTIONS ?=
|
||||||
DOCKER_COMPOSE_UP_OPTIONS ?= -d
|
DOCKER_COMPOSE_UP_OPTIONS ?= -d
|
||||||
DOCKER_GID ?= $(call gid,docker)
|
DOCKER_GID ?= $(call gid,docker)
|
||||||
DOCKER_IMAGE_TAG ?= $(if $(filter-out $(APP),myos),$(if $(filter $(ENV),$(ENV_DEPLOY)),$(VERSION),$(if $(DRONE_BUILD_NUMBER),$(DRONE_BUILD_NUMBER),latest)),latest)
|
DOCKER_IMAGE_TAG ?= $(if $(filter $(ENV),$(ENV_DEPLOY)),$(VERSION),$(if $(DRONE_BUILD_NUMBER),$(DRONE_BUILD_NUMBER),latest))
|
||||||
DOCKER_IMAGES ?= $(patsubst %/,%,$(patsubst docker/%,%,$(dir $(wildcard docker/*/Dockerfile))))
|
DOCKER_IMAGES ?= $(patsubst %/,%,$(patsubst docker/%,%,$(dir $(wildcard docker/*/Dockerfile))))
|
||||||
DOCKER_PLUGIN ?= rexray/s3fs:latest
|
DOCKER_PLUGIN ?= rexray/s3fs:latest
|
||||||
DOCKER_PLUGIN_ARGS ?= $(foreach var,$(DOCKER_PLUGIN_VARS),$(if $(DOCKER_PLUGIN_$(var)),$(var)='$(DOCKER_PLUGIN_$(var))'))
|
DOCKER_PLUGIN_ARGS ?= $(foreach var,$(DOCKER_PLUGIN_VARS),$(if $(DOCKER_PLUGIN_$(var)),$(var)='$(DOCKER_PLUGIN_$(var))'))
|
||||||
|
@ -42,7 +42,7 @@ DOCKER_REGISTRY_USERNAME ?= $(USER)
|
||||||
DOCKER_REGISTRY_REPOSITORY ?= $(addsuffix /,$(DOCKER_REGISTRY))$(subst $(USER),$(DOCKER_REGISTRY_USERNAME),$(DOCKER_REPOSITORY))
|
DOCKER_REGISTRY_REPOSITORY ?= $(addsuffix /,$(DOCKER_REGISTRY))$(subst $(USER),$(DOCKER_REGISTRY_USERNAME),$(DOCKER_REPOSITORY))
|
||||||
DOCKER_REPOSITORY ?= $(subst _,/,$(COMPOSE_PROJECT_NAME))
|
DOCKER_REPOSITORY ?= $(subst _,/,$(COMPOSE_PROJECT_NAME))
|
||||||
DOCKER_SHELL ?= $(SHELL)
|
DOCKER_SHELL ?= $(SHELL)
|
||||||
ENV_VARS += COMPOSE_PROJECT_NAME COMPOSE_SERVICE_NAME DOCKER_BUILD_TARGET DOCKER_GID DOCKER_HOST_IFACE DOCKER_HOST_INET DOCKER_IMAGE_TAG DOCKER_REGISTRY DOCKER_REPOSITORY DOCKER_SHELL
|
ENV_VARS += COMPOSE_PROJECT_NAME COMPOSE_SERVICE_NAME DOCKER_BUILD_TARGET DOCKER_GID DOCKER_IMAGE_TAG DOCKER_REGISTRY DOCKER_REPOSITORY DOCKER_SHELL
|
||||||
|
|
||||||
# https://github.com/docker/libnetwork/pull/2348
|
# https://github.com/docker/libnetwork/pull/2348
|
||||||
ifeq ($(HOST_SYSTEM), DARWIN)
|
ifeq ($(HOST_SYSTEM), DARWIN)
|
||||||
|
@ -59,15 +59,13 @@ endif
|
||||||
|
|
||||||
ifeq ($(DRONE), true)
|
ifeq ($(DRONE), true)
|
||||||
APP_PATH_PREFIX := $(DRONE_BUILD_NUMBER)
|
APP_PATH_PREFIX := $(DRONE_BUILD_NUMBER)
|
||||||
DOCKER_COMPOSE_DOWN_OPTIONS := --rmi all -v
|
|
||||||
DOCKER_COMPOSE_UP_OPTIONS := -d --build
|
|
||||||
DOCKER_BUILD_CACHE := false
|
|
||||||
ifneq ($(APP), myos)
|
|
||||||
COMPOSE_PROJECT_NAME := $(USER)_$(ENV)$(APP_PATH_PREFIX)_$(APP)
|
COMPOSE_PROJECT_NAME := $(USER)_$(ENV)$(APP_PATH_PREFIX)_$(APP)
|
||||||
COMPOSE_SERVICE_NAME := $(subst _,-,$(COMPOSE_PROJECT_NAME))
|
COMPOSE_SERVICE_NAME := $(subst _,-,$(COMPOSE_PROJECT_NAME))
|
||||||
|
DOCKER_BUILD_CACHE := false
|
||||||
|
DOCKER_COMPOSE_DOWN_OPTIONS := --rmi all -v
|
||||||
|
DOCKER_COMPOSE_UP_OPTIONS := -d --build
|
||||||
DOCKER_REPOSITORY := $(USER)/$(ENV)/$(APP)
|
DOCKER_REPOSITORY := $(USER)/$(ENV)/$(APP)
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(DOCKER), true)
|
ifeq ($(DOCKER), true)
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
.PHONY: setup-sysctl
|
.PHONY: setup-sysctl
|
||||||
setup-sysctl:
|
setup-sysctl:
|
||||||
ifeq ($(SETUP_SYSCTL),true)
|
ifeq ($(SETUP_SYSCTL),true)
|
||||||
$(call docker-run,--privileged alpine:latest,/bin/sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled ||:' >/dev/null)
|
|
||||||
$(foreach config,$(SETUP_SYSCTL_CONFIG),$(call docker-run,--privileged alpine:latest,sysctl -q -w $(config)) &&) true
|
$(foreach config,$(SETUP_SYSCTL_CONFIG),$(call docker-run,--privileged alpine:latest,sysctl -q -w $(config)) &&) true
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
25
make/def.mk
25
make/def.mk
|
@ -15,6 +15,7 @@ BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD 2>/de
|
||||||
CMDS ?= exec exec:% exec@% run run:% run@%
|
CMDS ?= exec exec:% exec@% run run:% run@%
|
||||||
COMMIT ?= $(shell git rev-parse $(BRANCH) 2>/dev/null)
|
COMMIT ?= $(shell git rev-parse $(BRANCH) 2>/dev/null)
|
||||||
CONTEXT ?= $(if $(APP),APP BRANCH VERSION) $(shell awk 'BEGIN {FS="="}; $$1 !~ /^(\#|$$)/ {print $$1}' .env.dist 2>/dev/null) UID USER
|
CONTEXT ?= $(if $(APP),APP BRANCH VERSION) $(shell awk 'BEGIN {FS="="}; $$1 !~ /^(\#|$$)/ {print $$1}' .env.dist 2>/dev/null) UID USER
|
||||||
|
CONTEXT_DEBUG ?= APP_DIR MAKE_DIR MAKE_SUBDIRS MAKEFILE_LIST MONOREPO_DIR env
|
||||||
DEBUG ?= false
|
DEBUG ?= false
|
||||||
DOCKER ?= true
|
DOCKER ?= true
|
||||||
DOMAIN ?= localhost
|
DOMAIN ?= localhost
|
||||||
|
@ -36,11 +37,13 @@ GIT_UPSTREAM_USER ?= $(or $(MONOREPO),$(USER))
|
||||||
HOSTNAME ?= $(shell hostname 2>/dev/null |sed 's/\..*//')
|
HOSTNAME ?= $(shell hostname 2>/dev/null |sed 's/\..*//')
|
||||||
MAKE_ARGS ?= $(foreach var,$(MAKE_VARS),$(if $($(var)),$(var)='$($(var))'))
|
MAKE_ARGS ?= $(foreach var,$(MAKE_VARS),$(if $($(var)),$(var)='$($(var))'))
|
||||||
MAKE_VARS ?= ENV
|
MAKE_VARS ?= ENV
|
||||||
|
MAKE_SUBDIRS ?= $(if $(filter myos,$(MYOS)),monorepo,$(if $(SUBREPO),subrepo )$(if $(APP),apps $(foreach type,$(APP_TYPE),$(if $(wildcard $(MAKE_DIR)/apps/$(type)),apps/$(type)))))
|
||||||
MAKECMDVARS ?= $(strip $(foreach var, $(filter-out .VARIABLES,$(.VARIABLES)), $(if $(filter command\ line,$(origin $(var))),$(var))))
|
MAKECMDVARS ?= $(strip $(foreach var, $(filter-out .VARIABLES,$(.VARIABLES)), $(if $(filter command\ line,$(origin $(var))),$(var))))
|
||||||
MAKECMDARGS ?= $(foreach var,$(MAKECMDVARS),$(var)='$($(var))')
|
MAKECMDARGS ?= $(foreach var,$(MAKECMDVARS),$(var)='$($(var))')
|
||||||
MAKETARGETS ?= $(filter-out $(.VARIABLES),$(shell $(MAKE) -qp 2>/dev/null |awk -F':' '/^[a-zA-Z0-9][^$$\#\/\t=]*:([^=]|$$)/ {print $$1}' |sort -u))
|
MAKETARGETS ?= $(filter-out $(.VARIABLES),$(shell $(MAKE) -qp 2>/dev/null |awk -F':' '/^[a-zA-Z0-9][^$$\#\/\t=]*:([^=]|$$)/ {print $$1}' |sort -u))
|
||||||
MONOREPO ?= $(if $(wildcard .git),$(if $(wildcard */.gitrepo),$(notdir $(CURDIR))),$(if $(SUBREPO),$(notdir $(realpath $(CURDIR)/..))))
|
MONOREPO ?= $(if $(filter myos,$(MYOS)),$(notdir $(CURDIR)),$(if $(APP),$(notdir $(realpath $(CURDIR)/..))))
|
||||||
MONOREPO_DIR ?= $(if $(wildcard .git),$(if $(wildcard */.gitrepo),$(CURDIR)),$(if $(SUBREPO),$(realpath $(CURDIR)/..)))
|
MONOREPO_DIR ?= $(if $(MONOREPO),$(if $(filter myos,$(MYOS)),$(realpath $(CURDIR)),$(if $(APP),$(realpath $(CURDIR)/..))))
|
||||||
|
MYOS ?= $(if $(filter $(MAKE_DIR),$(call pop,$(MAKE_DIR))),,$(call pop,$(MAKE_DIR)))
|
||||||
PARAMETERS ?= parameters
|
PARAMETERS ?= parameters
|
||||||
RECURSIVE ?= true
|
RECURSIVE ?= true
|
||||||
SHARED ?= shared
|
SHARED ?= shared
|
||||||
|
@ -62,6 +65,8 @@ endif
|
||||||
|
|
||||||
ifneq ($(DEBUG), true)
|
ifneq ($(DEBUG), true)
|
||||||
.SILENT:
|
.SILENT:
|
||||||
|
else
|
||||||
|
CONTEXT += $(CONTEXT_DEBUG)
|
||||||
endif
|
endif
|
||||||
ifeq ($(DRYRUN), true)
|
ifeq ($(DRYRUN), true)
|
||||||
ECHO = $(if $(filter $(DRYRUN_IGNORE),true),,printf '${COLOR_BROWN}$(APP)${COLOR_RESET}[${COLOR_GREEN}$(MAKELEVEL)${COLOR_RESET}] ${COLOR_BLUE}$@${COLOR_RESET}:${COLOR_RESET} '; echo)
|
ECHO = $(if $(filter $(DRYRUN_IGNORE),true),,printf '${COLOR_BROWN}$(APP)${COLOR_RESET}[${COLOR_GREEN}$(MAKELEVEL)${COLOR_RESET}] ${COLOR_BLUE}$@${COLOR_RESET}:${COLOR_RESET} '; echo)
|
||||||
|
@ -85,23 +90,9 @@ HOST_SYSTEM := DARWIN
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(MONOREPO),)
|
|
||||||
ifneq ($(wildcard .gitrepo),)
|
|
||||||
MYOS := ../myos
|
|
||||||
MAKE_SUBDIRS := subrepo
|
|
||||||
else
|
|
||||||
MYOS := myos
|
|
||||||
MAKE_SUBDIRS := monorepo
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(APP),)
|
|
||||||
MAKE_SUBDIRS += apps $(foreach type,$(APP_TYPE),$(if $(wildcard $(MAKE_DIR)/apps/$(type)),apps/$(type)))
|
|
||||||
endif
|
|
||||||
|
|
||||||
# include .env files
|
# include .env files
|
||||||
include $(wildcard $(ENV_FILE))
|
include $(wildcard $(ENV_FILE))
|
||||||
# include variables definitions
|
# include *.mk
|
||||||
include $(wildcard $(MAKE_DIR)/def.*.mk)
|
include $(wildcard $(MAKE_DIR)/def.*.mk)
|
||||||
include $(foreach subdir,$(MAKE_SUBDIRS),$(wildcard $(MAKE_DIR)/$(subdir)/def.mk $(MAKE_DIR)/$(subdir)/def.*.mk))
|
include $(foreach subdir,$(MAKE_SUBDIRS),$(wildcard $(MAKE_DIR)/$(subdir)/def.mk $(MAKE_DIR)/$(subdir)/def.*.mk))
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
|
# MAKE_DIR: directory path of this file
|
||||||
MAKE_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
|
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
|
||||||
|
# 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))
|
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)))
|
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 *.mk) $(filter-out $(wildcard $(MAKE_DIR)/*.mk),$(wildcard */def.mk */def.*.mk) $(filter-out $(wildcard */def.mk */def.*.mk),$(wildcard */*.mk)))
|
||||||
|
|
|
@ -6,7 +6,7 @@ COMMIT_BEFORE := $(if $(filter 0000000000000000000000000000000
|
||||||
endif
|
endif
|
||||||
ifneq (,$(filter $(DRONE_BUILD_EVENT),tag))
|
ifneq (,$(filter $(DRONE_BUILD_EVENT),tag))
|
||||||
COMMIT_AFTER := $(DRONE_TAG)
|
COMMIT_AFTER := $(DRONE_TAG)
|
||||||
COMMIT_BEFORE := $(shell git describe --abbrev=0 --tags $(DRONE_TAG)^)
|
COMMIT_BEFORE := $(shell git describe --abbrev=0 --tags $(DRONE_TAG)^ 2>/dev/null)
|
||||||
endif
|
endif
|
||||||
APPS_IMPACTED := $(shell git diff --name-only $(COMMIT_BEFORE) $(COMMIT_AFTER) 2>/dev/null |awk -F '/' 'NF>1 && !seen[$$1]++ {print $$1}')
|
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
|
# prevent drone to make down myos
|
||||||
|
|
|
@ -3,6 +3,6 @@ APPS_NAME ?= $(foreach app,$(APPS),$(or $(shell awk -F '='
|
||||||
CMDS += copy master-tag release release-check release-create release-finish subrepo-push update-subrepo
|
CMDS += copy master-tag release release-check release-create release-finish subrepo-push update-subrepo
|
||||||
CONTEXT += APPS APPS_NAME ENV RELEASE_INSTALL
|
CONTEXT += APPS APPS_NAME ENV RELEASE_INSTALL
|
||||||
DIRS ?= $(MAKE_DIR) $(PARAMETERS) $(SHARED)
|
DIRS ?= $(MAKE_DIR) $(PARAMETERS) $(SHARED)
|
||||||
RELEASE_UPGRADE ?= $(filter v%, $(shell git tag -l |sort -V |awk '/$(RELEASE_INSTALL)/,0'))
|
RELEASE_UPGRADE ?= $(filter v%, $(shell git tag -l 2>/dev/null |sort -V |awk '/$(RELEASE_INSTALL)/,0'))
|
||||||
RELEASE_VERSION ?= $(firstword $(subst -, ,$(VERSION)))
|
RELEASE_VERSION ?= $(firstword $(subst -, ,$(VERSION)))
|
||||||
SUBREPOS ?= $(filter subrepo/%, $(shell git remote))
|
SUBREPOS ?= $(filter subrepo/%, $(shell git remote 2>/dev/null))
|
||||||
|
|
|
@ -14,7 +14,7 @@ update-$(PARAMETERS): $(PARAMETERS)
|
||||||
$(PARAMETERS): SSH_PUBLIC_HOST_KEYS := $(PARAMETERS_REMOTE_HOST) $(SSH_BASTION_HOSTNAME) $(SSH_REMOTE_HOSTS)
|
$(PARAMETERS): SSH_PUBLIC_HOST_KEYS := $(PARAMETERS_REMOTE_HOST) $(SSH_BASTION_HOSTNAME) $(SSH_REMOTE_HOSTS)
|
||||||
$(PARAMETERS): MAKE_VARS += SSH_BASTION_HOSTNAME SSH_BASTION_USERNAME SSH_PRIVATE_IP_RANGE SSH_PUBLIC_HOST_KEYS
|
$(PARAMETERS): MAKE_VARS += SSH_BASTION_HOSTNAME SSH_BASTION_USERNAME SSH_PRIVATE_IP_RANGE SSH_PUBLIC_HOST_KEYS
|
||||||
$(PARAMETERS): myos-base
|
$(PARAMETERS): myos-base
|
||||||
$(call exec,[ -d $(PARAMETERS) ] && cd $(PARAMETERS) && git pull --quiet || git clone --quiet $(GIT_PARAMETERS_REPOSITORY))
|
$(call exec,[ -d $(PARAMETERS) ] && cd $(PARAMETERS) && git pull --quiet || git clone --quiet $(APP_PARAMETERS_REPOSITORY))
|
||||||
|
|
||||||
## Update release version number in .env
|
## Update release version number in .env
|
||||||
.PHONY: update-release
|
.PHONY: update-release
|
||||||
|
@ -44,4 +44,4 @@ update-upstream: myos-base .git/refs/remotes/upstream/master
|
||||||
$(call exec,git fetch --tags upstream)
|
$(call exec,git fetch --tags upstream)
|
||||||
|
|
||||||
.git/refs/remotes/upstream/master: myos-base
|
.git/refs/remotes/upstream/master: myos-base
|
||||||
$(call exec,git remote add upstream $(GIT_UPSTREAM_REPOSITORY) 2>/dev/null ||:)
|
$(call exec,git remote add upstream $(APP_UPSTREAM_REPOSITORY) 2>/dev/null ||:)
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
ENV_VARS += DOCKER_HOST_IFACE DOCKER_HOST_INET
|
||||||
|
|
||||||
.PHONY: node
|
.PHONY: node
|
||||||
node: docker-network-create-$(DOCKER_NETWORK_PUBLIC) node-openssl stack-node-up
|
node: docker-network-create-$(DOCKER_NETWORK_PUBLIC) node-openssl stack-node-up
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue