feat: generate relup tarball
To generate a tarball, tag the release and then: ``` make emqx-enterprise-relup ```
This commit is contained in:
parent
c8258cebe8
commit
e9163f2752
33
build
33
build
|
@ -213,37 +213,8 @@ make_elixir_rel() {
|
||||||
|
|
||||||
## extract previous version .tar.gz files to _build/$PROFILE/rel/emqx before making relup
|
## extract previous version .tar.gz files to _build/$PROFILE/rel/emqx before making relup
|
||||||
make_relup() {
|
make_relup() {
|
||||||
local rel_dir="_build/$PROFILE/rel/emqx"
|
./rebar3 emqx relup_gen --relup-dir=./relup
|
||||||
local name_pattern
|
make rel -C _build/default/plugins/emqx_relup
|
||||||
name_pattern="${PROFILE}-$(./pkg-vsn.sh "$PROFILE" --vsn_matcher --long)"
|
|
||||||
local releases=()
|
|
||||||
mkdir -p _upgrade_base
|
|
||||||
while read -r tgzfile ; do
|
|
||||||
local base_vsn
|
|
||||||
base_vsn="$(echo "$tgzfile" | grep -oE "[0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc)\.[0-9])?(-[0-9a-f]{8})?" | head -1)"
|
|
||||||
## we have to create tmp dir to untar old tgz, as `tar --skip-old-files` is not supported on all plantforms
|
|
||||||
local tmp_dir
|
|
||||||
tmp_dir="$(mktemp -d -t emqx.XXXXXXX)"
|
|
||||||
$TAR -C "$tmp_dir" -zxf "$tgzfile"
|
|
||||||
mkdir -p "${rel_dir}/releases/"
|
|
||||||
cp -npr "$tmp_dir/releases"/* "${rel_dir}/releases/"
|
|
||||||
## There is for some reason a copy of the '$PROFILE.rel' file to releases dir,
|
|
||||||
## the content is duplicated to releases/5.0.0/$PROFILE.rel.
|
|
||||||
## This file seems to be useless, but yet confusing as it does not change after upgrade/downgrade
|
|
||||||
## Hence we force delete this file.
|
|
||||||
rm -f "${rel_dir}/releases/${PROFILE}.rel"
|
|
||||||
mkdir -p "${rel_dir}/lib/"
|
|
||||||
cp -npr "$tmp_dir/lib"/* "${rel_dir}/lib/"
|
|
||||||
rm -rf "$tmp_dir"
|
|
||||||
releases+=( "$base_vsn" )
|
|
||||||
done < <("$FIND" _upgrade_base -maxdepth 1 -name "${name_pattern}.tar.gz" -type f)
|
|
||||||
if [ ${#releases[@]} -eq 0 ]; then
|
|
||||||
log "No upgrade base found, relup ignored"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
RELX_BASE_VERSIONS="$(IFS=, ; echo "${releases[*]}")"
|
|
||||||
export RELX_BASE_VERSIONS
|
|
||||||
./rebar3 as "$PROFILE" relup --relname emqx --relvsn "${PKG_VSN}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cp_dyn_libs() {
|
cp_dyn_libs() {
|
||||||
|
|
|
@ -184,7 +184,7 @@ project_app_excluded("apps/" ++ AppStr, ExcludedApps) ->
|
||||||
|
|
||||||
plugins() ->
|
plugins() ->
|
||||||
[
|
[
|
||||||
%{relup_helper, {git, "https://github.com/emqx/relup_helper", {tag, "2.1.0"}}},
|
{emqx_relup, {git, "https://github.com/emqx/emqx-relup.git", {branch, "main"}}},
|
||||||
%% emqx main project does not require port-compiler
|
%% emqx main project does not require port-compiler
|
||||||
%% pin at root level for deterministic
|
%% pin at root level for deterministic
|
||||||
{pc, "v1.14.0"}
|
{pc, "v1.14.0"}
|
||||||
|
|
Loading…
Reference in New Issue