build: fix build order of release and relup

This commit is contained in:
Zaiming Shi 2021-05-07 09:39:28 +02:00 committed by Rory Z
parent 88df1713b1
commit 396cae26fe
2 changed files with 21 additions and 20 deletions

View File

@ -111,30 +111,33 @@ xref: $(REBAR)
dialyzer: $(REBAR) dialyzer: $(REBAR)
@$(REBAR) as check dialyzer @$(REBAR) as check dialyzer
.PHONY: $(REL_PROFILES:%=relup-%) ## rel target is to create release package without relup
$(REL_PROFILES:%=relup-%): $(REBAR) .PHONY: $(REL_PROFILES:%=%-rel) $(PKG_PROFILES:%=%-rel)
ifneq ($(OS),Windows_NT) $(REL_PROFILES:%=%-rel) $(PKG_PROFILES:%=%-rel): $(REBAR) get-dashboard $(CONF_SEGS)
@$(BUILD) $(@:relup-%=%) relup @$(BUILD) $(subst -rel,,$(@)) rel
endif
.PHONY: $(REL_PROFILES:%=%-tar) $(PKG_PROFILES:%=%-tar) ## relup target is to create relup instructions
$(REL_PROFILES:%=%-tar) $(PKG_PROFILES:%=%-tar): $(REBAR) get-dashboard $(CONF_SEGS) .PHONY: $(REL_PROFILES:%=%-relup)
@$(BUILD) $(subst -tar,,$(@)) tar define gen-relup-target
$1-relup: $1-rel
@$(BUILD) $1 relup
endef
ALL_ZIPS = $(REL_PROFILES)
$(foreach zt,$(ALL_ZIPS),$(eval $(call gen-relup-target,$(zt))))
## zip targets depend on the corresponding relup and tar artifacts ## zip target is to create a release package .zip with relup
.PHONY: $(REL_PROFILES:%=%-zip) .PHONY: $(REL_PROFILES:%=%-zip)
define gen-zip-target define gen-zip-target
$1-zip: relup-$1 $1-tar $1-zip: $1-relup
@$(BUILD) $1 zip @$(BUILD) $1 zip
endef endef
ALL_ZIPS = $(REL_PROFILES) $(PKG_PROFILES) ALL_ZIPS = $(REL_PROFILES)
$(foreach zt,$(ALL_ZIPS),$(eval $(call gen-zip-target,$(zt)))) $(foreach zt,$(ALL_ZIPS),$(eval $(call gen-zip-target,$(zt))))
## A pkg target depend on a regular release profile zip to include relup, ## A pkg target depend on a regular release
## and also a -pkg suffixed profile tar (without relup) for making deb/rpm package
.PHONY: $(PKG_PROFILES) .PHONY: $(PKG_PROFILES)
define gen-pkg-target define gen-pkg-target
$1: $(subst -pkg,,$1)-zip $1-tar $1: $1-rel
@$(BUILD) $1 pkg @$(BUILD) $1 pkg
endef endef
$(foreach pt,$(PKG_PROFILES),$(eval $(call gen-pkg-target,$(pt)))) $(foreach pt,$(PKG_PROFILES),$(eval $(call gen-pkg-target,$(pt))))

10
build
View File

@ -2,7 +2,7 @@
# This script helps to build release artifacts. # This script helps to build release artifacts.
# arg1: profile, e.g. emqx | emqx-edge | emqx-pkg | emqx-edge-pkg # arg1: profile, e.g. emqx | emqx-edge | emqx-pkg | emqx-edge-pkg
# arg2: artifact, e.g. tar | relup | zip | pkg # arg2: artifact, e.g. rel | relup | zip | pkg
set -euo pipefail set -euo pipefail
@ -62,7 +62,7 @@ log() {
echo "===< $msg" echo "===< $msg"
} }
make_tar() { make_rel() {
./rebar3 as "$PROFILE" tar ./rebar3 as "$PROFILE" tar
} }
@ -117,8 +117,8 @@ make_zip() {
log "building artifact=$ARTIFACT for profile=$PROFILE" log "building artifact=$ARTIFACT for profile=$PROFILE"
case "$ARTIFACT" in case "$ARTIFACT" in
tar) rel)
make_tar make_rel
;; ;;
relup) relup)
make_relup make_relup
@ -132,8 +132,6 @@ case "$ARTIFACT" in
log "Skipped making deb/rpm package for $SYSTEM" log "Skipped making deb/rpm package for $SYSTEM"
exit 0 exit 0
fi fi
# build the tar which is going to be used as the base of deb and rpm packages
make_tar
make -C "deploy/packages/${PKGERDIR}" clean make -C "deploy/packages/${PKGERDIR}" clean
EMQX_REL="$(pwd)" EMQX_BUILD="${PROFILE}" SYSTEM="${SYSTEM}" make -C "deploy/packages/${PKGERDIR}" EMQX_REL="$(pwd)" EMQX_BUILD="${PROFILE}" SYSTEM="${SYSTEM}" make -C "deploy/packages/${PKGERDIR}"
;; ;;