wip
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
CMDS += copy master-tag release release-check release-create release-finish subrepo-push update-subrepo
|
||||
CONTEXT += APPS ENV RELEASE_INSTALL
|
||||
CMDS += copy master-tag release release-check release-create release-finish subrepo-push subrepo-update
|
||||
CONTEXT += APPS ENV RELEASE
|
||||
DIRS ?= $(MAKE_DIR) $(PARAMETERS) $(SHARED)
|
||||
RELEASE_UPGRADE ?= $(filter v%, $(shell git tag -l 2>/dev/null |sort -V |awk '/$(RELEASE_INSTALL)/,0'))
|
||||
RELEASE_UPGRADE ?= $(filter v%, $(shell git tag -l 2>/dev/null |sort -V |awk '/$(RELEASE)/,0'))
|
||||
RELEASE_VERSION ?= $(firstword $(subst -, ,$(VERSION)))
|
||||
SUBREPOS ?= $(filter subrepo/%, $(shell git remote 2>/dev/null))
|
||||
|
||||
@@ -26,10 +26,24 @@ release-create: release-check git-stash ## Create release [version]
|
||||
.PHONY: release-finish
|
||||
release-finish: release-check git-stash ## Finish release [version]
|
||||
$(call make,git-branch-merge-upstream-master BRANCH=$(RELEASE_BRANCH))
|
||||
$(call make,update-subrepos)
|
||||
$(call make,subrepos-update)
|
||||
$(call make,git-tag-create-upstream-master TAG=$(RELEASE_VERSION))
|
||||
$(call make,subrepos-tag-create-master TAG=$(RELEASE_VERSION))
|
||||
$(call make,git-tag-merge-upstream-develop TAG=$(RELEASE_VERSION))
|
||||
$(call make,git-branch-delete BRANCH=$(RELEASE_BRANCH))
|
||||
$(call make,subrepos-branch-delete BRANCH=$(RELEASE_BRANCH))
|
||||
$(call make,git-unstash,,STATUS)
|
||||
|
||||
## Update release version number in .env
|
||||
.PHONY: release-update
|
||||
release-update:
|
||||
$(ECHO) awk -v s=RELEASE=$(RELEASE_VERSION) '/^RELEASE=/{$$0=s;f=1} {a[++n]=$$0} END{if(!f)a[++n]=s;for(i=1;i<=n;i++)print a[i]>ARGV[1]}' .env
|
||||
|
||||
## Run migration targets to upgrade specific releases
|
||||
.PHONY: release-upgrade
|
||||
release-upgrade: $(patsubst %,release-upgrade-from-%,$(RELEASE_UPGRADE)) release-update ## Update monorepo version
|
||||
|
||||
## Sample of release migration target
|
||||
.PHONY: release-upgrade-from-%
|
||||
release-upgrade-from-%:
|
||||
echo "Upgrading from release: $*"
|
||||
|
||||
@@ -57,3 +57,11 @@ subrepos-branch-delete: $(APPS) ;
|
||||
|
||||
.PHONY: subrepos-tag-create-%
|
||||
subrepos-tag-create-%: $(APPS) ;
|
||||
|
||||
.PHONY: subrepos-update
|
||||
subrepos-update: myos-base git-stash $(APPS) git-unstash ## Update subrepos
|
||||
$(call exec,git push upstream $(BRANCH))
|
||||
|
||||
.PHONY: subrepo-update-%
|
||||
subrepo-update-%:
|
||||
$(if $(wildcard $*/Makefile),$(call make,subrepo-update,$*))
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
##
|
||||
# UPDATE
|
||||
|
||||
## Update /etc/hosts
|
||||
.PHONY: update-hosts
|
||||
update-hosts:
|
||||
ifneq (,$(filter $(ENV),local))
|
||||
cat */.env 2>/dev/null |grep -Eo 'urlprefix-[^/]+' |sed 's/urlprefix-//' |while read host; do grep $$host /etc/hosts >/dev/null 2>&1 || { echo "Adding $$host to /etc/hosts"; echo 127.0.0.1 $$host |$(ECHO) sudo tee -a /etc/hosts >/dev/null; }; done
|
||||
endif
|
||||
|
||||
.PHONY: update-$(PARAMETERS)
|
||||
update-$(PARAMETERS): $(PARAMETERS)
|
||||
|
||||
$(PARAMETERS): SSH_PUBLIC_HOST_KEYS := $(PARAMETERS_REMOTE_HOST) $(SSH_BASTION_HOSTNAME) $(SSH_REMOTE_HOSTS)
|
||||
$(PARAMETERS): MAKE_ENV_VARS += SSH_BASTION_HOSTNAME SSH_BASTION_USERNAME SSH_PRIVATE_IP_RANGE SSH_PUBLIC_HOST_KEYS
|
||||
$(PARAMETERS): myos-base
|
||||
$(call exec,[ -d $(PARAMETERS) ] && cd $(PARAMETERS) && git pull --quiet || git clone --quiet $(APP_PARAMETERS_REPOSITORY))
|
||||
|
||||
## Update release version number in .env
|
||||
.PHONY: update-release
|
||||
update-release:
|
||||
$(ECHO) awk -v s=RELEASE_INSTALL=$(RELEASE_VERSION) '/^RELEASE_INSTALL=/{$$0=s;f=1} {a[++n]=$$0} END{if(!f)a[++n]=s;for(i=1;i<=n;i++)print a[i]>ARGV[1]}' .env
|
||||
|
||||
## Update remotes
|
||||
.PHONY: update-remotes
|
||||
update-remotes: myos-base
|
||||
$(call exec,git fetch --all --prune --tags -u)
|
||||
|
||||
.PHONY: update-remote-%
|
||||
update-remote-%: myos-base
|
||||
$(call exec,git fetch --prune --tags -u $*)
|
||||
|
||||
## Update subrepos
|
||||
.PHONY: update-subrepos
|
||||
update-subrepos: myos-base git-stash $(APPS) git-unstash ## Update subrepos
|
||||
$(call exec,git push upstream $(BRANCH))
|
||||
|
||||
.PHONY: update-subrepo-%
|
||||
update-subrepo-%:
|
||||
$(if $(wildcard $*/Makefile),$(call make,update-subrepo,$*))
|
||||
|
||||
.PHONY: update-upstream
|
||||
update-upstream: myos-base .git/refs/remotes/upstream/master
|
||||
$(call exec,git fetch --tags upstream)
|
||||
|
||||
.git/refs/remotes/upstream/master: myos-base
|
||||
$(call exec,git remote add upstream $(APP_UPSTREAM_REPOSITORY) 2>/dev/null ||:)
|
||||
@@ -1,9 +0,0 @@
|
||||
##
|
||||
# UPGRADE
|
||||
|
||||
.PHONY: upgrade
|
||||
upgrade: $(patsubst %,upgrade-from-release-%,$(RELEASE_UPGRADE)) update-release ## Update monorepo version
|
||||
|
||||
.PHONY: upgrade-from-release-%
|
||||
upgrade-from-release-%:
|
||||
# echo "Upgrading from release: $*"
|
||||
Reference in New Issue
Block a user