From a22de0a64767b4cb996861dce94952464e4cd708 Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Thu, 10 Jul 2025 14:31:24 +0200 Subject: [PATCH] maint(developer): use `add_zip_files` function This makes use of `add_zip_files` where possible. Fixes: #14332 Follow-up-of: #14093 Test-bot: skip --- developer/src/inst/build.sh | 33 +++++++++---------- .../android/keyman-android-release.sh | 7 ++-- web/ci.sh | 33 ++++--------------- 3 files changed, 25 insertions(+), 48 deletions(-) diff --git a/developer/src/inst/build.sh b/developer/src/inst/build.sh index 133352525a..07260c8b1d 100755 --- a/developer/src/inst/build.sh +++ b/developer/src/inst/build.sh @@ -20,9 +20,10 @@ builder_describe_outputs \ builder_parse "$@" -. "$KEYMAN_ROOT/resources/build/win/environment.inc.sh" -. "$KEYMAN_ROOT/resources/build/win/wix.inc.sh" -. "$KEYMAN_ROOT/resources/build/win/zip.inc.sh" +. "${KEYMAN_ROOT}/resources/build/win/environment.inc.sh" +. "${KEYMAN_ROOT}/resources/build/win/wix.inc.sh" +. "${KEYMAN_ROOT}/resources/build/win/zip.inc.sh" +. "${KEYMAN_ROOT}/resources/build/zip.inc.sh" # In dev environments, we'll hack the tier to alpha; CI sets this for us in real builds. if [[ -z ${KEYMAN_TIER+x} ]]; then @@ -246,22 +247,20 @@ function make-kmc-install-zip() { builder_heading make-kmc-install-zip copy-schemas - cd "${DEVELOPER_ROOT}/bin" + ( + # shellcheck disable=2164 + cd "${DEVELOPER_ROOT}/bin" - # TODO: rename this to keyman-developer-cli-$Version.zip - local KMCOMP_ZIP="${DEVELOPER_ROOT}/release/${KEYMAN_VERSION}/kmcomp-${KEYMAN_VERSION}.zip" + # TODO: rename this to keyman-developer-cli-$Version.zip + local KMCOMP_ZIP="${DEVELOPER_ROOT}/release/${KEYMAN_VERSION}/kmcomp-${KEYMAN_VERSION}.zip" - # shellcheck disable=SC2154 - local COMPRESS_CMD="${SEVENZ_HOME}/7z" - - "${COMPRESS_CMD}" a -bd -bb0 "${KMCOMP_ZIP}" \ - kmconvert.exe \ - keyboard_info.schema.json \ - xml/layoutbuilder/*.keyman-touch-layout \ - projects/ \ - server/ - - cd "$THIS_SCRIPT_PATH" + add_zip_files "${KMCOMP_ZIP}" -q -r \ + kmconvert.exe \ + keyboard_info.schema.json \ + xml/layoutbuilder/*.keyman-touch-layout \ + projects/ \ + server/ + ) } # TODO: are these required? diff --git a/resources/teamcity/android/keyman-android-release.sh b/resources/teamcity/android/keyman-android-release.sh index 7aa258ee49..2be7381e5e 100755 --- a/resources/teamcity/android/keyman-android-release.sh +++ b/resources/teamcity/android/keyman-android-release.sh @@ -14,6 +14,7 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")" # shellcheck disable=SC2154 . "${KEYMAN_ROOT}/resources/shellHelperFunctions.sh" +. "${KEYMAN_ROOT}/resources/zip.inc.sh" . "${KEYMAN_ROOT}/resources/teamcity/includes/tc-download-info.inc.sh" . "${KEYMAN_ROOT}/resources/teamcity/includes/tc-helpers.inc.sh" . "${KEYMAN_ROOT}/resources/teamcity/android/android-actions.inc.sh" @@ -46,7 +47,6 @@ function _publish_to_downloads_keyman_com() { builder_echo start "publish to downloads.keyman.com" "Publishing release to downloads.keyman.com" local UPLOAD_PATH KEYMAN_ENGINE_ANDROID_ZIP KEYMAN_APK FIRSTVOICES_APK - local COMPRESS_CMD # shellcheck disable=SC2154 UPLOAD_PATH="upload/${KEYMAN_VERSION}" @@ -54,15 +54,12 @@ function _publish_to_downloads_keyman_com() { KEYMAN_APK="keyman-${KEYMAN_VERSION}.apk" FIRSTVOICES_APK="firstvoices-${KEYMAN_VERSION}.apk" - # shellcheck disable=SC2154 - COMPRESS_CMD="${SEVENZ_HOME}/7z" - rm -rf "${UPLOAD_PATH}" mkdir -p "${UPLOAD_PATH}" ( cd KMAPro/kMAPro/libs - "${COMPRESS_CMD}" a -bd -bb0 "../../../${UPLOAD_PATH}/${KEYMAN_ENGINE_ANDROID_ZIP}" keyman-engine.aar ../../../Samples '-xr!build.sh' + add_zip_files -q -xr!build.sh "../../../${UPLOAD_PATH}/${KEYMAN_ENGINE_ANDROID_ZIP}" keyman-engine.aar ../../../Samples ) cp "KMAPro/kMAPro/build/outputs/apk/release/${KEYMAN_APK}" "${UPLOAD_PATH}" diff --git a/web/ci.sh b/web/ci.sh index f6a92b943b..77210ae224 100755 --- a/web/ci.sh +++ b/web/ci.sh @@ -13,6 +13,7 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")" ## END STANDARD BUILD SCRIPT INCLUDE . "${KEYMAN_ROOT}/resources/shellHelperFunctions.sh" +. "${KEYMAN_ROOT}/resources/build/zip.inc.sh" . "${KEYMAN_ROOT}/resources/build/ci/pull-requests.inc.sh" # This script runs from its own folder @@ -154,32 +155,12 @@ function prepare_downloads_keyman_com_action() { mkdir -p "${UPLOAD_PATH}" - # On Windows, we use 7-zip (SEVENZ_HOME env var). On other platforms, we use zip. - - COMPRESS_CMD= - COMPRESS_ADD= - - # Marc's preference; use $SEVENZ_HOME and have the BAs set up with THAT as an env var. - if [[ ! -z "${SEVENZ_HOME+x}" ]]; then - COMPRESS_CMD="${SEVENZ_HOME}/7z" - COMPRESS_ADD="a -bd -bb0 -r" # add, hide progress, log level 0, recursive - fi - - if [[ -z "${COMPRESS_CMD}" ]] ; then - if command -v zip &> /dev/null; then - # Note: does not support within-archive renames! - COMPRESS_CMD=zip - COMPRESS_ADD="-r" - else - builder_die "7z and zip commands are both unavailable" - fi - fi - - pushd build/publish - # Zip both the 'debug' and 'release' configurations together. - # shellcheck disable=SC2086 - "${COMPRESS_CMD}" ${COMPRESS_ADD} "${ZIP}" ./* - popd + ( + # shellcheck disable=2164 + cd build/publish + # Zip both the 'debug' and 'release' configurations together. + add_zip_files -q -r "${ZIP}" ./* + ) # --- Second action artifact - the 'static' folder (hosted user testing on downloads.keyman.com) ---