Merge pull request #13819 from keymanapp/maint/web/use-builder_is_ci_build

chore(web): replace --ci flag with builder_is_ci_build
This commit is contained in:
Joshua Horton 2025-05-06 08:16:37 +07:00 committed by GitHub
commit 1438704ee0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
28 changed files with 49 additions and 103 deletions

View file

@ -9,6 +9,7 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
## END STANDARD BUILD SCRIPT INCLUDE
. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
. "$KEYMAN_ROOT/resources/build/build-utils-ci.inc.sh"
# ################################ Main script ################################
@ -41,8 +42,7 @@ builder_describe "Builds engine modules for Keyman Engine for Web (KMW)." \
":samples Builds all needed resources for the KMW sample-page set" \
":tools Builds engine-related development resources" \
":test-pages=src/test/manual Builds resources needed for the KMW manual testing pages" \
":_all (Meta build target used when targets are not specified)" \
"--ci+ Set to utilize CI-based test configurations & reporting."
":_all (Meta build target used when targets are not specified)"
# Possible TODO?
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \
@ -135,14 +135,6 @@ build_action() {
"${KEYMAN_ROOT}/web/build/test/dom/cases/attachment/"
}
test_action() {
TEST_OPTS=
if builder_has_option --ci; then
TEST_OPTS=--ci
fi
./test.sh "${TEST_OPTS}"
}
coverage_action() {
builder_echo "Creating coverage report..."
@ -213,7 +205,7 @@ builder_run_action build:_all build_action
# Run tests
builder_run_child_actions test
builder_run_action test:_all test_action
builder_run_action test:_all ./test.sh
function do_test_help() {
check-markdown "$KEYMAN_ROOT/web/docs/engine"

View file

@ -63,8 +63,7 @@ function build_action() {
# - also useful when validating this script on a local dev machine!
# - build: then do the ACTUAL build.
# one option:
# - --ci: For app/browser, outputs 'release' config filesize profiling logs
./build.sh configure clean build --ci
./build.sh configure clean build
# Upload the sentry-configuration engine used by the mobile apps to sentry
# Also, clean 'em first.
@ -79,19 +78,7 @@ function build_action() {
}
function test_action() {
# Testing step: run ALL unit tests, including those of the submodules.
OPTIONS=
if ! builder_is_debug_build; then
OPTIONS=--ci
fi
# No --reporter option exists yet for the headless modules.
"${KEYMAN_ROOT}/web/src/engine/keyboard/build.sh" test ${OPTIONS}
"${KEYMAN_ROOT}/web/src/engine/osk/gesture-processor/build.sh" test ${OPTIONS}
./build.sh test ${OPTIONS}
./build.sh test
}
function post_test_action() {

View file

@ -1,6 +1,9 @@
#!/usr/bin/env bash
#
# Needed for builder_is_ci_build check.
. "$KEYMAN_ROOT/resources/build/build-utils-ci.inc.sh"
BUNDLE_CMD="node $KEYMAN_ROOT/web/src/tools/es-bundling/build/common-bundle.mjs"
# Compiles all build products corresponding to the specified target.
@ -101,7 +104,7 @@ function test-headless() {
fi
TEST_OPTS=
if builder_has_option --ci; then
if builder_is_ci_build; then
TEST_OPTS="--reporter mocha-teamcity-reporter"
fi
if [[ -n "$TEST_EXTENSIONS" ]]; then

View file

@ -19,8 +19,7 @@ builder_describe "Builds the Keyman Engine for Web's website-integrating version
"clean" \
"configure" \
"build" \
"test" \
"--ci+ Set to utilize CI-based test configurations & reporting."
"test"
# Possible TODO?s
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -18,8 +18,7 @@ builder_describe "Builds the Keyman Engine for Web's desktop form-factor keyboar
"clean" \
"configure" \
"build" \
"test" \
"--ci+ Set to utilize CI-based test configurations & reporting."
"test"
# Possible TODO?s
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -18,8 +18,7 @@ builder_describe "Builds the Keyman Engine for Web's puppetable version designed
"clean" \
"configure" \
"build" \
"test" \
"--ci+ Set to utilize CI-based test configurations & reporting."
"test"
# Possible TODO?s
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -19,8 +19,7 @@ builder_describe "Builds the Keyman Engine for Web (KMW) attachment engine." \
"clean" \
"configure" \
"build" \
"test" \
"--ci+ Set to utilize CI-based test configurations & reporting."
"test"
# Possible TODO?
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -22,8 +22,7 @@ builder_describe \
"Compiles the web-oriented utility function module." \
"@/common/web/keyman-version" \
"@/web/src/tools/es-bundling" \
clean configure build test \
"--ci For use with action ${BUILDER_TERM_START}test${BUILDER_TERM_END} - emits CI-friendly test reports"
clean configure build test
builder_describe_outputs \
configure "/node_modules" \
@ -49,7 +48,7 @@ function do_test() {
builder_heading "Running web-utils test suite"
local FLAGS=
if builder_has_option --ci; then
if builder_is_ci_build; then
echo "Replacing user-friendly test reports with CI-friendly versions."
FLAGS="$FLAGS --reporter mocha-teamcity-reporter"
fi

View file

@ -20,8 +20,7 @@ builder_describe "Builds DOM-utility modules used by the Keyman Engine for Web (
"clean" \
"configure" \
"build" \
"test" \
"--ci+ Set to utilize CI-based test configurations & reporting."
"test"
# Possible TODO?
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -17,8 +17,7 @@ builder_describe "Builds DOM-based OutputTarget subclasses used by the Keyman En
"clean" \
"configure" \
"build" \
"test" \
"--ci+ Set to utilize CI-based test configurations & reporting."
"test"
# Possible TODO?
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -18,8 +18,7 @@ builder_describe "Builds specialized event-related modules utilized by Keyman En
"clean" \
"configure" \
"build" \
"test" \
"--ci+ Set to utilize CI-based test configurations & reporting."
"test"
# Possible TODO?
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -19,8 +19,7 @@ builder_describe "Builds configuration subclasses used by the Keyman Engine for
"clean" \
"configure" \
"build" \
"test" \
"--ci+ Set to utilize CI-based test configurations & reporting."
"test"
# Possible TODO?s
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -17,8 +17,7 @@ builder_describe "Builds configuration subclasses used by the Keyman Engine for
"clean" \
"configure" \
"build" \
"test" \
"--ci+ Set to utilize CI-based test configurations & reporting."
"test"
builder_describe_outputs \
configure "/node_modules" \

View file

@ -17,8 +17,7 @@ builder_describe "Builds Keyman Engine modules for keyboard cloud-querying & cac
"clean" \
"configure" \
"build" \
"test" \
"--ci+ Set to utilize CI-based test configurations & reporting."
"test"
# Possible TODO?s
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -25,8 +25,7 @@ builder_describe \
configure \
clean \
build \
test \
"--ci For use with action $(builder_term test) - emits CI-friendly test reports"
test
builder_describe_outputs \
configure /node_modules \

View file

@ -24,8 +24,7 @@ builder_describe "Builds the Keyman Engine for Web's common top-level base class
"clean" \
"configure" \
"build" \
"test" \
"--ci+ Set to utilize CI-based test configurations & reporting."
"test"
# Possible TODO?s
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -21,8 +21,7 @@ builder_describe "Builds the Keyman Engine for Web's On-Screen Keyboard package
"clean" \
"configure" \
"build" \
"test" \
"--ci+ Set to utilize CI-based test configurations & reporting."
"test"
# Possible TODO?s
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -25,8 +25,7 @@ builder_describe "Builds the gesture-recognition model for Web-based on-screen k
"build" \
"test" \
":module" \
":tools tools for testing & developing test resources for this module" \
"--ci sets the --ci option for child scripts (i.e, the $(builder_term test) action)"
":tools tools for testing & developing test resources for this module"
builder_describe_outputs \
configure /node_modules \

View file

@ -21,8 +21,7 @@ builder_describe "Builds predictive-text components used within Keyman Engine fo
":wordbreakers Builds the wordbreakers provided for lexical model use" \
":worker-main Builds the predictive-text worker interface module" \
":worker-thread Builds the predictive-text worker" \
":_all (Meta build target used when targets are not specified)" \
"--ci+ Set to utilize CI-based test configurations & reporting."
":_all (Meta build target used when targets are not specified)"
# Possible TODO?
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \
@ -57,4 +56,4 @@ builder_run_child_actions build:templates
builder_run_child_actions build:worker-thread
builder_run_child_actions build:worker-main
builder_run_child_actions test
builder_run_child_actions test

View file

@ -9,6 +9,7 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
## END STANDARD BUILD SCRIPT INCLUDE
. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
. "$KEYMAN_ROOT/resources/build/build-utils-ci.inc.sh"
################################ Main script ################################
@ -19,8 +20,7 @@ builder_describe "Builds the predictive-text model template implementation modul
"clean" \
"configure" \
"build" \
"test" \
"--ci"
"test"
builder_describe_outputs \
configure /node_modules \
@ -38,7 +38,7 @@ function do_build() {
function do_test() {
local FLAGS=
if builder_has_option --ci; then
if builder_is_ci_build; then
FLAGS="-reporter mocha-teamcity-reporter"
fi

View file

@ -9,6 +9,7 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
## END STANDARD BUILD SCRIPT INCLUDE
. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
. "$KEYMAN_ROOT/resources/build/build-utils-ci.inc.sh"
################################ Main script ################################
@ -18,8 +19,7 @@ builder_describe "Builds the predictive-text wordbreaker implementation module"
"clean" \
"configure" \
"build" \
"test" \
"--ci"
"test"
builder_describe_outputs \
configure src/main/default/data.inc.ts \
@ -47,7 +47,7 @@ function do_build() {
function do_test() {
local FLAGS=
if builder_has_option --ci; then
if builder_is_ci_build; then
FLAGS="-reporter mocha-teamcity-reporter"
fi

View file

@ -12,6 +12,7 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
## END STANDARD BUILD SCRIPT INCLUDE
. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
. "$KEYMAN_ROOT/resources/build/build-utils-ci.inc.sh"
BUNDLE_CMD="node $KEYMAN_ROOT/web/src/tools/es-bundling/build/common-bundle.mjs"
@ -25,8 +26,7 @@ builder_describe "Builds the lm-layer module" \
"clean" \
"configure" \
"build" \
"test" \
"--ci Sets $(builder_term test) action to use CI-based test configurations & reporting"
"test"
builder_describe_outputs \
configure /node_modules \
@ -55,11 +55,7 @@ function do_build() {
# Note - the actual test setup is done in a separate test script, but it's easy
# enough to route the calls through.
function do_test() {
local TEST_OPTIONS=
if builder_has_option --ci; then
TEST_OPTIONS=--ci
fi
./unit_tests/test.sh test:headless test:browser ${TEST_OPTIONS}
./unit_tests/test.sh test:headless test:browser
}
builder_run_action configure do_configure

View file

@ -22,20 +22,12 @@ builder_describe "Runs all tests for the language-modeling / predictive-text lay
"test+" \
":libraries Runs unit tests for in-repo libraries used by this module"\
":headless Runs this module's headless user tests" \
":browser Runs this module's browser-based user tests" \
"--ci Uses CI-based test configurations & emits CI-friendly test reports"
":browser Runs this module's browser-based user tests"
# TODO: consider dependencies? ideally this will be test.inc.sh?
builder_parse "$@"
TEST_OPTS=
if builder_has_option --ci && builder_is_debug_build; then
builder_die "Options --ci and --debug are incompatible."
elif builder_has_option --ci; then
TEST_OPTS=--ci
fi
if builder_start_action configure; then
verify_npm_setup
builder_finish_action success configure
@ -49,18 +41,18 @@ if builder_start_action test:libraries; then
# addition to fair bit of `pushd` and `popd`.
echo
echo "### Running $(builder_term web/src/engine/predictive-text/wordbreakers) tests"
"$KEYMAN_ROOT/web/src/engine/predictive-text/wordbreakers/build.sh" test $TEST_OPTS
"$KEYMAN_ROOT/web/src/engine/predictive-text/wordbreakers/build.sh" test
pushd "$KEYMAN_ROOT/web/src/engine/predictive-text/templates/"
echo
echo "### Running $(builder_term web/src/engine/predictive-text/templates/) tests"
"$KEYMAN_ROOT/web/src/engine/predictive-text/templates/build.sh" test $TEST_OPTS
"$KEYMAN_ROOT/web/src/engine/predictive-text/templates/build.sh" test
popd
pushd "$KEYMAN_ROOT/web/src/engine/predictive-text/worker-thread"
echo
echo "### Running ${BUILDER_TERM_START}web/src/engine/predictive-text/worker-thread${BUILDER_TERM_END} tests"
./build.sh test $TEST_OPTS
./build.sh test
popd
builder_finish_action success test:libraries
@ -69,7 +61,7 @@ fi
if builder_start_action test:headless; then
MOCHA_FLAGS=$FLAGS
if builder_has_option --ci; then
if builder_is_ci_build; then
MOCHA_FLAGS="$MOCHA_FLAGS --reporter mocha-teamcity-reporter"
fi
@ -109,7 +101,7 @@ if builder_start_action test:browser; then
WTR_CONFIG=
WTR_DEBUG=
if builder_has_option --ci; then
if builder_is_ci_build; then
WTR_CONFIG=.CI
fi

View file

@ -10,6 +10,7 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
## END STANDARD BUILD SCRIPT INCLUDE
. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
. "$KEYMAN_ROOT/resources/build/build-utils-ci.inc.sh"
WORKER_OUTPUT=build/obj
WORKER_OUTPUT_FILENAME=build/lib/worker-main.js
@ -30,7 +31,7 @@ builder_describe \
"@/web/src/tools/es-bundling" \
"@../wordbreakers" \
"@../templates" \
configure clean build test --ci
configure clean build test
builder_describe_outputs \
configure /node_modules \
@ -47,11 +48,6 @@ function do_configure() {
}
function do_build() {
EXT_FLAGS=
if builder_has_option --ci; then
EXT_FLAGS=--ci
fi
# Declaration bundling.
tsc --emitDeclarationOnly --outFile $INTERMEDIATE/worker-main.d.ts
@ -98,7 +94,7 @@ function do_test() {
local WTR_CONFIG=
local WTR_DEBUG=
if builder_has_option --ci; then
if builder_is_ci_build; then
MOCHA_FLAGS="$MOCHA_FLAGS --reporter mocha-teamcity-reporter"
WTR_CONFIG=.CI
fi

View file

@ -19,8 +19,7 @@ builder_describe "Builds the Keyman Engine for Web's sample page setups." \
"configure Does nothing for this project" \
"clean" \
"build" \
"test Does nothing for this project" \
"--ci Does nothing for this project"
"test Does nothing for this project"
# Possible TODO?s
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -18,8 +18,7 @@ builder_describe "Builds the Keyman Engine for Web's sample page setups." \
"configure Does nothing for this project" \
"clean" \
"build" \
"test Does nothing for this project" \
"--ci Does nothing for this project"
"test Does nothing for this project"
# Possible TODO?s
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \

View file

@ -19,7 +19,6 @@ builder_describe "Builds the Keyman Engine for Web's development & unit-testing
"clean" \
"build" \
"test" \
"--ci Does nothing for this script" \
":bulk_rendering=testing/bulk_rendering Builds the bulk-rendering tool used to validate changes to OSK display code" \
":es-bundling Builds code used to esbundle Web engine artifacts for browser consumption" \
":recorder=testing/recorder Builds the KMW recorder tool used for development of unit-test resources" \

View file

@ -20,8 +20,7 @@ builder_describe "Runs the Keyman Engine for Web unit-testing suites" \
"@./src/tools/testing/recorder test:integrated" \
"test+" \
":dom Runs DOM-oriented unit tests (reduced footprint, nothing browser-specific)" \
":integrated Runs KMW's integration test suite" \
"--ci Set to utilize CI-based test configurations & reporting. May not be set with $(builder_term --debug)."
":integrated Runs KMW's integration test suite"
builder_parse "$@"
@ -29,7 +28,7 @@ builder_parse "$@"
# Select the right CONFIG file.
WTR_CONFIG=
if builder_has_option --ci; then
if builder_is_ci_build; then
WTR_CONFIG=.CI
fi