maint(common): use builder_launch for child builds

Fixes: #15130
Test-bot: skip
This commit is contained in:
Marc Durdin 2025-12-01 17:31:57 +01:00
parent 9335a82530
commit c524db41b9
25 changed files with 46 additions and 50 deletions

View file

@ -22,14 +22,13 @@ builder_parse "$@"
mac_verify_on_mac
function do_build() {
./build.sh clean configure build:engine build:app --sim-artifact
builder_launch /ios/build.sh clean configure build:engine build:app --sim-artifact
# Since we may be disabling it via build-agent environment variable at times...
if [ ! -z "${RELEASE_OEM+x}" ]; then
"$KEYMAN_ROOT/oem/firstvoices/ios/build.sh" clean configure build --sim-artifact
builder_launch /oem/firstvoices/ios/build.sh clean configure build --sim-artifact
fi
}
builder_run_action build do_build
# The script called below isn't builder-based, but... eh, "if it ain't broke."
builder_run_action prep_release tools/prepRelease.sh
builder_run_action prep_release builder_launch /ios/tools/prepRelease.sh

View file

@ -4,17 +4,16 @@
android_clean_action() {
builder_echo start "clean" "Cleaning artifact directories"
# shellcheck disable=SC2154
"${KEYMAN_ROOT}/android/build.sh" clean
builder_launch /android/build.sh clean
builder_echo end "clean" success "Finished cleaning artifact directories"
}
android_build_action() {
builder_echo start "build" "Building Keyman for Android"
local TARGETS="$1"
local ARGS="$2"
# REVIEW: is it deliberate that we `configure` all targets but only `build,test` `$TARGETS`?
"${KEYMAN_ROOT}/android/build.sh" configure build,test:"${TARGETS}" ${ARGS}
builder_launch /android/build.sh configure build,test:"${TARGETS}"
builder_echo end "build" success "Finished building Keyman for Android"
}
@ -22,7 +21,7 @@ android_publish_symbols() {
local PUBTARGETS="$1"
builder_echo start "publish to Sentry" "Publishing release to Sentry"
"${KEYMAN_ROOT}/android/build.sh" "publish-symbols:${PUBTARGETS}"
builder_launch /android/build.sh "publish-symbols:${PUBTARGETS}"
builder_echo end "publish to Sentry" success "Finished publishing release to Sentry"
}

View file

@ -44,7 +44,7 @@ cd "${KEYMAN_ROOT}/android"
function _create_zip_archive() {
builder_echo start "archive" "Copying release artifacts to upload/ and creating zip"
"${KEYMAN_ROOT}/android/build.sh" archive
builder_launch /android/build.sh archive
builder_echo end "archive" success "Finished copying release artifacts to upload/ and creating zip"
}
@ -66,7 +66,7 @@ function _publish_to_playstore() {
local PUBTARGETS="$1"
builder_echo start "publish to Google Play Store" "Publishing release to Google Play Store"
"${KEYMAN_ROOT}/android/build.sh" "publish-play-store:${PUBTARGETS}"
builder_launch /android/build.sh "publish-play-store:${PUBTARGETS}"
builder_echo end "publish to Google Play Store" success "Finished publishing release to Google Play Store"
}
@ -107,10 +107,10 @@ fi
if builder_has_action all; then
android_clean_action
android_build_action "${TARGETS}" --release
android_build_action "${TARGETS}"
do_publish
else
builder_run_action clean android_clean_action
builder_run_action build android_build_action "${TARGETS}" --release
builder_run_action build android_build_action "${TARGETS}"
builder_run_action publish do_publish
fi

View file

@ -29,9 +29,7 @@ builder_parse "$@"
cd "${KEYMAN_ROOT}/android"
function do_build() {
"${KEYMAN_ROOT}/android/build.sh" \
configure,build:engine,sample1,sample2,keyboardharness \
--debug
builder_launch /android/build.sh configure,build:engine,sample1,sample2,keyboardharness
}
if builder_has_action all; then

View file

@ -39,10 +39,10 @@ fi
if builder_has_action all; then
android_clean_action
android_build_action "${TARGETS}" --debug
android_publish_symbols "${TARGETS}" --debug
android_build_action "${TARGETS}"
android_publish_symbols "${TARGETS}"
else
builder_run_action clean android_clean_action
builder_run_action build android_build_action "${TARGETS}" --debug
builder_run_action publish android_publish_symbols "${TARGETS}" --debug
builder_run_action build android_build_action "${TARGETS}"
builder_run_action publish android_publish_symbols "${TARGETS}"
fi

View file

@ -18,4 +18,4 @@ builder_describe \
builder_parse "$@"
builder_run_action all "${KEYMAN_ROOT}/common/web/build.sh" configure build test
builder_run_action all builder_launch /common/web/build.sh configure build test

View file

@ -18,4 +18,4 @@ builder_describe \
builder_parse "$@"
builder_run_action all "${KEYMAN_ROOT}/common/build.sh" configure build test
builder_run_action all builder_launch /common/build.sh configure build test

View file

@ -19,4 +19,4 @@ builder_describe \
builder_parse "$@"
builder_run_action all "${KEYMAN_ROOT}/core/build.sh" configure,build,test:wasm
builder_run_action all builder_launch /core/build.sh configure,build,test:wasm

View file

@ -41,7 +41,7 @@ cd "${KEYMAN_ROOT}/developer/src"
function _build_developer() {
builder_echo start "build developer" "Building Keyman Developer"
./build.sh configure build test api publish
builder_launch /developer/src/build.sh configure build test api publish
builder_echo end "build developer" success "Finished building Keyman Developer"
}
@ -49,7 +49,7 @@ function _build_developer() {
function _build_testkeyboards() {
builder_echo start "build testkeyboards" "Building test keyboards"
"${KEYMAN_ROOT}/common/test/keyboards/build.sh"
builder_launch /common/test/keyboards/build.sh
builder_echo end "build testkeyboards" success "Finished building test keyboards"
}
@ -57,7 +57,7 @@ function _build_testkeyboards() {
function _publish_sentry() {
builder_echo start "publish sentry" "Publishing debug information files to Sentry"
"${KEYMAN_ROOT}/developer/src/tools/sentry-upload-difs.sh"
builder_launch /developer/src/tools/sentry-upload-difs.sh
builder_echo end "publish sentry" success "Finished publishing debug information files to Sentry"
}

View file

@ -32,7 +32,7 @@ cd "${KEYMAN_ROOT}/developer/src"
function build_developer_action() {
builder_echo start "build developer" "Building Keyman Developer"
"${KEYMAN_ROOT}/developer/src/build.sh" configure build test
builder_launch /developer/src/build.sh configure build test
builder_echo end "build developer" success "Finished building Keyman Developer"
}

View file

@ -41,7 +41,7 @@ function build_developer_action() {
function _build_developer() {
builder_echo start "build developer" "Building and testing Keyman Developer"
./build.sh configure build test
builder_launch /developer/src/build.sh configure build test
builder_echo end "build developer" success "Finished building and testing Keyman Developer"
}
@ -49,19 +49,19 @@ function _build_developer() {
function _build_testkeyboards() {
builder_echo start "build testkeyboards" "Building test keyboards"
"${KEYMAN_ROOT}/common/test/keyboards/build.sh" --zip-source --index
builder_launch /common/test/keyboards/build.sh --zip-source --index
builder_echo end "build testkeyboards" success "Finished building test keyboards"
}
function publish_sentry_action() {
builder_echo start "publish" "publish modules locally and prep api"
./build.sh api publish
builder_launch /developer/src/build.sh api publish
builder_echo end "publish" "publish modules locally and prep api"
builder_echo start "publish sentry" "Publishing debug information files to Sentry"
# TODO: move this into build.sh publish?
"${KEYMAN_ROOT}/developer/src/tools/sentry-upload-difs.sh"
builder_launch /developer/src/tools/sentry-upload-difs.sh
builder_echo end "publish sentry" success "Finished publishing debug information files to Sentry"
}

View file

@ -25,13 +25,13 @@ cd "${KEYMAN_ROOT}/ios"
function _build_sample1() {
builder_echo start "kmsample1" "Building KMSample1"
"${KEYMAN_ROOT}/ios/samples/KMSample1/build.sh" clean configure build --debug
builder_launch /ios/samples/KMSample1/build.sh clean configure build
builder_echo end "kmsample1" success "Finished building KMSample1"
}
function _build_sample2() {
builder_echo start "kmsample2" "Building KMSample2"
"${KEYMAN_ROOT}/ios/samples/KMSample2/build.sh" clean configure build --debug
builder_launch /ios/samples/KMSample2/build.sh clean configure build
builder_echo end "kmsample2" success "Finished building KMSample2"
}

View file

@ -33,7 +33,7 @@ cd "${KEYMAN_ROOT}/linux"
function clean_action() {
builder_heading "Cleaning up"
# shellcheck disable=SC2154
"${KEYMAN_ROOT}/linux/build.sh" clean
builder_launch /linux/build.sh clean
}
if builder_has_action all; then

View file

@ -38,7 +38,7 @@ linux_additional_test_dependencies_action() {
linux_build_action() {
INSTALLDIR="$(mktemp -d)"
# shellcheck disable=SC2068
DESTDIR="${INSTALLDIR}" "${KEYMAN_ROOT}/linux/build.sh" clean configure build install $@
DESTDIR="${INSTALLDIR}" builder_launch /linux/build.sh clean configure build install $@
}
# Run unit tests for Keyman for Linux.
@ -52,6 +52,6 @@ linux_unit_tests_action() {
export NO_AT_BRIDGE=1
# shellcheck disable=SC2068
"${KEYMAN_ROOT}/linux/build.sh" test $@
builder_launch /linux/build.sh test $@
builder_echo endTest unit_tests success "Finished running unit tests"
}

View file

@ -9,6 +9,6 @@ macos_clean_action() {
macos_build_action() {
builder_echo start "build" "Building Keyman for macOS"
# shellcheck disable=SC2154
"${KEYMAN_ROOT}/mac/build.sh" configure build test publish
builder_launch /mac/build.sh configure build test publish
builder_echo end "build" success "Finished building Keyman for macOS"
}

View file

@ -98,7 +98,7 @@ echo "trigger-release-builds.sh: building resources/build/version"
pushd "$KEYMAN_ROOT"
npm ci
"$KEYMAN_ROOT/resources/build/version/build.sh"
builder_launch /resources/build/version/build.sh
echo "trigger-release-builds.sh: running resources/build/version"
pushd "$KEYMAN_ROOT"

View file

@ -52,7 +52,7 @@ web_test_action() {
trap ERR
fi
"${KEYMAN_ROOT}/web/build.sh" coverage
builder_launch /web/build.sh coverage
builder_echo end web_test success "Finished running tests for native KeymanWeb"
}

View file

@ -102,7 +102,7 @@ function windows_publish_action() {
export RSYNC_HOST
export RSYNC_ROOT
"${KEYMAN_ROOT}/windows/build.sh" publish
builder_launch /windows/build.sh publish
windows_upload_symbols_to_sentry
ba_win_download_symbol_server_index
ba_win_publish_new_symbols

View file

@ -37,7 +37,7 @@ fi
function windows_publish_action() {
builder_echo start "publish windows" "Publishing Keyman for Windows"
"${KEYMAN_ROOT}/windows/build.sh" publish
builder_launch /windows/build.sh publish
windows_upload_symbols_to_sentry
builder_echo end "publish windows" success "Finished publishing Keyman for Windows"
}

View file

@ -4,16 +4,16 @@
windows_build_action() {
builder_echo start "build windows" "Building Keyman for Windows"
# shellcheck disable=SC2154
"${KEYMAN_ROOT}/windows/build.sh" configure build
builder_launch /windows/build.sh configure build
builder_echo end "build windows" success "Finished building Keyman for Windows"
}
windows_test_action() {
builder_echo start "test windows" "Running Keyman for Windows tests"
"${KEYMAN_ROOT}/windows/build.sh" test
builder_launch /windows/build.sh test
builder_echo end "test windows" success "Finished running Keyman for Windows tests"
}
windows_upload_symbols_to_sentry() {
"${KEYMAN_ROOT}/windows/src/buildtools/sentry-upload-difs.sh"
builder_launch /windows/src/buildtools/sentry-upload-difs.sh
}

View file

@ -204,7 +204,7 @@ builder_run_action build:_all build_action
# Run tests
builder_run_child_actions test
builder_run_action test:_all ./test.sh
builder_run_action test:_all builder_launch /web/test.sh
function do_test_help() {
check-markdown "$KEYMAN_ROOT/web/docs/engine"

View file

@ -64,7 +64,7 @@ function build_action() {
# - also useful when validating this script on a local dev machine!
# - build: then do the ACTUAL build.
# one option:
./build.sh configure clean build
builder_launch /web/build.sh configure clean build
if builder_is_ci_build && builder_is_ci_build_level_release; then
# Upload the sentry-configuration engine used by the mobile apps to sentry
@ -81,7 +81,7 @@ function build_action() {
}
function test_action() {
./build.sh test
builder_launch /web/build.sh test
}
function post_test_action() {

View file

@ -60,6 +60,6 @@ function do_test_tools() {
builder_run_action configure do_configure
builder_run_action clean rm -rf build/
builder_run_action build:module do_build_module
builder_run_action build:tools src/tools/build.sh build
builder_run_action build:tools builder_launch /web/src/engine/osk/gesture-processor/src/tools/build.sh build
builder_run_action test:module test-headless-typescript "${SUBPROJECT_NAME}"
builder_run_action test:tools do_test_tools

View file

@ -44,7 +44,7 @@ function do_prepublish() {
if [[ ! -f "$DEVTOOLS" ]]; then
# We'll build devtools here directly because we are before the configure /
# build steps which would trigger it in via dependencies
"$KEYMAN_ROOT"/common/windows/delphi/tools/devtools/build.sh configure build prepublish
builder_launch /common/windows/delphi/tools/devtools/build.sh configure build prepublish
fi
#
@ -54,7 +54,7 @@ function do_prepublish() {
if [[ ! -f /common/windows/delphi/tools/test-klog/$WIN32_TARGET_PATH/test_klog.exe ]]; then
# We'll build test_klog here directly because we are before the configure /
# build steps which would trigger it in via dependencies
"$KEYMAN_ROOT"/common/windows/delphi/tools/test-klog/build.sh configure build prepublish
builder_launch /common/windows/delphi/tools/test-klog/build.sh configure build prepublish
fi
"$DEVTOOLS" -rt

View file

@ -36,7 +36,7 @@ function do_build() {
# Embed tsysinfox64 into a resource; we have to do a special signcode for
# tsysinfox64.exe as we embed the executable into tsysinfo.exe
../tsysinfox64/build.sh publish --no-deps
builder_launch /windows/src/engine/tsysinfox64/build.sh publish
cp "$WINDOWS_PROGRAM_ENGINE/tsysinfox64.exe" tsysinfox64.bin
run_in_vs_env rc tsysinfo_x64.rc
rm -f tsysinfox64.bin