fix: remove the extra level of 'emqx' dir from .tar.gz

This commit is contained in:
Shawn 2022-05-25 01:58:05 +08:00
parent f036a946a8
commit eea9bd90b4
6 changed files with 17 additions and 11 deletions

View File

@ -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

View File

@ -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'

View File

@ -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'

11
build
View File

@ -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

View File

@ -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

View File

@ -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}.