spiegel-keyman/resources/teamcity/developer/keyman-developer-test-windows.sh
2025-12-02 06:17:31 +01:00

77 lines
2.4 KiB
Bash
Executable file

#!/usr/bin/env bash
# Keyman is copyright (C) SIL Global. MIT License.
#
# TC build script for Keyman Developer on Windows
# shellcheck disable=SC2164
# shellcheck disable=SC1091
## START STANDARD BUILD SCRIPT INCLUDE
# adjust relative paths as necessary
THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
. "${THIS_SCRIPT%/*}/../../../resources/build/builder-full.inc.sh"
## END STANDARD BUILD SCRIPT INCLUDE
# shellcheck disable=SC2154
. "${KEYMAN_ROOT}/resources/teamcity/includes/tc-helpers.inc.sh"
################################ Main script ################################
builder_describe \
"Build Keyman Developer on Windows" \
"all run all actions (used by TeamCity build configuration)" \
"build build Keyman Developer and test keyboards" \
"publish publish debug information files to sentry"
builder_parse "$@"
if ! builder_is_windows; then
builder_echo error "This script is intended to be run on Windows only."
exit 1
fi
# shellcheck disable=SC2154
cd "${KEYMAN_ROOT}/developer/src"
function build_developer_action() {
_build_developer
_build_testkeyboards
}
function _build_developer() {
builder_echo start "build developer" "Building and testing Keyman Developer"
builder_launch /developer/src/build.sh configure build test
builder_echo end "build developer" success "Finished building and testing Keyman Developer"
}
function _build_testkeyboards() {
builder_echo start "build testkeyboards" "Building test keyboards"
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"
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?
builder_launch /developer/src/tools/sentry-upload-difs.sh
builder_echo end "publish sentry" success "Finished publishing debug information files to Sentry"
}
if builder_has_action all; then
# TODO: control codesign by KEYMAN_BUILD_LEVEL
build_developer_action
if builder_is_ci_build_level_release; then
publish_sentry_action
fi
else
builder_run_action build build_developer_action
builder_run_action publish publish_sentry_action
fi