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)
@$(REBAR) as check dialyzer
.PHONY: $(REL_PROFILES:%=relup-%)
$(REL_PROFILES:%=relup-%): $(REBAR)
ifneq ($(OS),Windows_NT)
@$(BUILD) $(@:relup-%=%) relup
endif
## rel target is to create release package without relup
.PHONY: $(REL_PROFILES:%=%-rel) $(PKG_PROFILES:%=%-rel)
$(REL_PROFILES:%=%-rel) $(PKG_PROFILES:%=%-rel): $(REBAR) get-dashboard $(CONF_SEGS)
@$(BUILD) $(subst -rel,,$(@)) rel
.PHONY: $(REL_PROFILES:%=%-tar) $(PKG_PROFILES:%=%-tar)
$(REL_PROFILES:%=%-tar) $(PKG_PROFILES:%=%-tar): $(REBAR) get-dashboard $(CONF_SEGS)
@$(BUILD) $(subst -tar,,$(@)) tar
## relup target is to create relup instructions
.PHONY: $(REL_PROFILES:%=%-relup)
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)
define gen-zip-target
$1-zip: relup-$1 $1-tar
$1-zip: $1-relup
@$(BUILD) $1 zip
endef
ALL_ZIPS = $(REL_PROFILES) $(PKG_PROFILES)
ALL_ZIPS = $(REL_PROFILES)
$(foreach zt,$(ALL_ZIPS),$(eval $(call gen-zip-target,$(zt))))
## A pkg target depend on a regular release profile zip to include relup,
## and also a -pkg suffixed profile tar (without relup) for making deb/rpm package
## A pkg target depend on a regular release
.PHONY: $(PKG_PROFILES)
define gen-pkg-target
$1: $(subst -pkg,,$1)-zip $1-tar
$1: $1-rel
@$(BUILD) $1 pkg
endef
$(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.
# 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
@ -62,7 +62,7 @@ log() {
echo "===< $msg"
}
make_tar() {
make_rel() {
./rebar3 as "$PROFILE" tar
}
@ -117,8 +117,8 @@ make_zip() {
log "building artifact=$ARTIFACT for profile=$PROFILE"
case "$ARTIFACT" in
tar)
make_tar
rel)
make_rel
;;
relup)
make_relup
@ -132,8 +132,6 @@ case "$ARTIFACT" in
log "Skipped making deb/rpm package for $SYSTEM"
exit 0
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
EMQX_REL="$(pwd)" EMQX_BUILD="${PROFILE}" SYSTEM="${SYSTEM}" make -C "deploy/packages/${PKGERDIR}"
;;