From eea9bd90b4bbf0432ea7b5f3c014437d5ac0aec3 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 25 May 2022 01:58:05 +0800 Subject: [PATCH] fix: remove the extra level of 'emqx' dir from .tar.gz --- .ci/fvt_tests/relup.lux | 3 ++- .github/workflows/build_packages.yaml | 3 ++- .github/workflows/build_slim_packages.yaml | 3 ++- build | 11 ++++++----- scripts/pkg-tests.sh | 6 ++++-- scripts/update_appup.escript | 2 +- 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/.ci/fvt_tests/relup.lux b/.ci/fvt_tests/relup.lux index 4a8894476..45065d4bb 100644 --- a/.ci/fvt_tests/relup.lux +++ b/.ci/fvt_tests/relup.lux @@ -22,7 +22,8 @@ [shell emqx] !cd $PACKAGE_PATH - !tar -zxf ${PROFILE}-$(echo $old_vsn | sed -r 's/[v|e]//g')-*-ubuntu20.04-amd64.tar.gz + mkdir -p emqx + !tar -C emqx -zxf ${PROFILE}-$(echo $old_vsn | sed -r 's/[v|e]//g')-*-ubuntu20.04-amd64.tar.gz ?SH-PROMPT !cd emqx diff --git a/.github/workflows/build_packages.yaml b/.github/workflows/build_packages.yaml index 9bcfa1ced..09a443848 100644 --- a/.github/workflows/build_packages.yaml +++ b/.github/workflows/build_packages.yaml @@ -179,7 +179,8 @@ jobs: working-directory: source run: | pkg_name=$(find _packages/${{ matrix.profile }} -mindepth 1 -maxdepth 1 -iname \*.tar.gz) - tar -zxf $pkg_name + mkdir -p emqx + tar -C emqx -zxf $pkg_name # gsed -i '/emqx_telemetry/d' ./emqx/data/loaded_plugins ./emqx/bin/emqx start || cat emqx/log/erlang.log.1 ready='no' diff --git a/.github/workflows/build_slim_packages.yaml b/.github/workflows/build_slim_packages.yaml index e68c99cf4..f62febf0e 100644 --- a/.github/workflows/build_slim_packages.yaml +++ b/.github/workflows/build_slim_packages.yaml @@ -197,7 +197,8 @@ jobs: - name: test run: | pkg_name=$(find _packages/${{ matrix.profile }} -mindepth 1 -maxdepth 1 -iname \*.tar.gz) - tar -zxf $pkg_name + mkdir -p emqx + tar -C emqx -zxf $pkg_name # gsed -i '/emqx_telemetry/d' ./emqx/data/loaded_plugins ./emqx/bin/emqx start || cat emqx/log/erlang.log.1 ready='no' diff --git a/build b/build index bd60f1c5e..4aee6d5e8 100755 --- a/build +++ b/build @@ -111,12 +111,12 @@ make_relup() { mkdir -p "${rel_dir}/lib" mkdir -p "${rel_dir}/releases" local name_pattern - name_pattern="${PROFILE}-$(./pkg-vsn.sh "$PROFILE" --vsn_matcher)" + name_pattern="${PROFILE}-$(./pkg-vsn.sh "$PROFILE" --vsn_matcher --long)" local releases=() while read -r tgzfile ; do local base_vsn - base_vsn="$(echo "$tgzfile" | grep -oE "[0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta)\.[0-9])?(-[0-9a-f]{8})?" | head -1)" - tar -C "$rel_dir" -zxf ---keep-old-files "$tgzfile" emqx/releases emqx/lib + base_vsn="$(echo "$tgzfile" | grep -oE "[0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc)\.[0-9])?(-[0-9a-f]{8})?" | head -1)" + tar -C "$rel_dir" -zxf "$tgzfile" --keep-old-files releases lib releases+=( "$base_vsn" ) done < <("$FIND" _upgrade_base -maxdepth 1 -name "${name_pattern}.tar.gz" -type f) if [ ${#releases[@]} -eq 0 ]; then @@ -183,8 +183,9 @@ make_tgz() { ## for DEB and RPM packages the dependencies are resoved by yum and apt cp_dyn_libs "${tard}/emqx" ## create tar after change dir (for windows) - pushd "${tard}" >/dev/null - tar -czf "${target_name}" emqx + ## to avoid creating an extra level of 'emqx' dir in the .tar.gz file + pushd "${tard}/emqx" >/dev/null + tar -zcf "../${target_name}" * popd >/dev/null mv "${tard}/${target_name}" "${target}" case "$SYSTEM" in diff --git a/scripts/pkg-tests.sh b/scripts/pkg-tests.sh index 81800427c..5fce0f71e 100755 --- a/scripts/pkg-tests.sh +++ b/scripts/pkg-tests.sh @@ -88,7 +88,8 @@ emqx_test(){ local packagename="${PACKAGE_FILE_NAME}" case "$PKG_SUFFIX" in "tar.gz") - tar -zxf "${PACKAGE_PATH}/${packagename}" + mkdir -p "${PACKAGE_PATH}/emqx" + tar -C "${PACKAGE_PATH}/emqx" -zxf "${PACKAGE_PATH}/${packagename}" export EMQX_ZONES__DEFAULT__MQTT__SERVER_KEEPALIVE=60 export EMQX_MQTT__MAX_TOPIC_ALIAS=10 export EMQX_LOG__CONSOLE_HANDLER__LEVEL=debug @@ -231,7 +232,8 @@ relup_test(){ pattern="$EMQX_NAME-$("$CODE_PATH"/pkg-vsn.sh "${EMQX_NAME}" --long --vsn_matcher)" while read -r pkg; do packagename=$(basename "${pkg}") - tar -zxf "$packagename" + mkdir -p emqx + tar -C emqx -zxf "$packagename" if ! ./emqx/bin/emqx start; then cat emqx/log/erlang.log.1 || true cat emqx/log/emqx.log.1 || true diff --git a/scripts/update_appup.escript b/scripts/update_appup.escript index f2b6235e9..21fc9bb34 100755 --- a/scripts/update_appup.escript +++ b/scripts/update_appup.escript @@ -173,7 +173,7 @@ download_prev_release(Tag, #{binary_rel_url := {ok, URL0}, clone_url := Repo}) - Filename = filename:join(BaseDir, Dir), Script = "mkdir -p ${OUTFILE} && wget -c -O ${OUTFILE}.tar.gz ${URL} && - tar -zxf ${OUTFILE} ${OUTFILE}.tar.gz", + tar -zxf ${OUTFILE}.tar.gz -C ${OUTFILE}", Env = [{"TAG", Tag}, {"OUTFILE", Filename}, {"URL", URL}], bash(Script, Env), {ok, Filename}.