diff --git a/.shellcheckrc b/.shellcheckrc index 1c46a510eb..0124e83789 100644 --- a/.shellcheckrc +++ b/.shellcheckrc @@ -1,5 +1,6 @@ external-sources=true -# If you get SC1091 for sourced files, add the following setting to -# your .vscode/settings.json file: -# "shellcheck.useWorkspaceRootAsCwd": false +source-path=resources/build/ +source-path=resources/ +source-path=SCRIPTDIR +source-path=linux/ibus-keyman/tests/scripts/ diff --git a/HISTORY.md b/HISTORY.md index ab22da94b3..38308b6454 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,9 @@ # Keyman Version History +## 19.0.125 alpha 2025-09-23 + +* fix(common): some more tests running successfully in a container (#14784) + ## 19.0.124 alpha 2025-09-22 * maint(linux): improve `upload-to-debian` script (#14798) diff --git a/VERSION.md b/VERSION.md index 6bde9cb51f..426b15e5e7 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -19.0.125 \ No newline at end of file +19.0.126 \ No newline at end of file diff --git a/docs/settings/linux/settings.json b/docs/settings/linux/settings.json index 3fd13430d1..e0098e6a3c 100644 --- a/docs/settings/linux/settings.json +++ b/docs/settings/linux/settings.json @@ -104,9 +104,6 @@ "C_Cpp.clang_format_fallbackStyle": "Google", "bashIde.explainshellEndpoint": "http://localhost:5000", "bashIde.highlightParsingErrors": true, - "shellcheck.customArgs": [ - "--external-sources --source-path=resources/build/" - ], "C_Cpp.errorSquiggles": "EnabledIfIncludesResolve", - "shellcheck.useWorkspaceRootAsCwd": false + "shellcheck.useWorkspaceRootAsCwd": true } diff --git a/linux/ibus-keyman/tests/scripts/find-tests.sh b/linux/ibus-keyman/tests/scripts/find-tests.sh index 502cbab55f..2d154a2a47 100755 --- a/linux/ibus-keyman/tests/scripts/find-tests.sh +++ b/linux/ibus-keyman/tests/scripts/find-tests.sh @@ -1,15 +1,15 @@ #!/usr/bin/env bash set -eu -while [ -n "$1" ]; do - if [ ! -d "$1" ]; then +while [[ -n "$1" ]]; do + if [[ ! -d "$1" ]]; then shift continue fi pushd "$1" > /dev/null while IFS= read -r -d '' file; do - testname=$(basename "$file" .kmx) + testname=$(basename "${file}" .kmx) #shellcheck disable=SC2059 - printf "$(basename "$file")\t${testname#k_}\n" + printf "$(basename "${file}")\t${testname#k_}\n" done < <(find . -name \*.kmx -print0 | sort -z) popd > /dev/null exit 0 diff --git a/linux/ibus-keyman/tests/scripts/run-single-test.sh b/linux/ibus-keyman/tests/scripts/run-single-test.sh index b2ee42cc40..a95a7b8c45 100755 --- a/linux/ibus-keyman/tests/scripts/run-single-test.sh +++ b/linux/ibus-keyman/tests/scripts/run-single-test.sh @@ -2,7 +2,6 @@ set -eu TESTDIR=${XDG_DATA_HOME:-${HOME}/.local/share}/keyman/test_kmx -# shellcheck source=linux/ibus-keyman/tests/scripts/test-helper.inc.sh . "$(dirname "$0")"/test-helper.inc.sh if [[ -v KEYMAN_PKG_BUILD ]]; then diff --git a/linux/ibus-keyman/tests/scripts/run-tests.sh b/linux/ibus-keyman/tests/scripts/run-tests.sh index c2b9d796df..fa4d9f8f4b 100755 --- a/linux/ibus-keyman/tests/scripts/run-tests.sh +++ b/linux/ibus-keyman/tests/scripts/run-tests.sh @@ -3,7 +3,6 @@ set -eu -# shellcheck disable=SC2034 TOP_SRCDIR=${top_srcdir:-$(realpath "$(dirname "$0")/../..")} TESTBASEDIR=${XDG_DATA_HOME:-${HOME}/.local/share}/keyman TESTDIR=${TESTBASEDIR}/test_kmx @@ -11,7 +10,6 @@ CLEANUP_FILE=/tmp/ibus-keyman-test-cleanup PID_FILE=/tmp/ibus-keyman-test.pids ENV_FILE=/tmp/keyman-env.txt -# shellcheck disable=SC1091 . "$(dirname "$0")"/test-helper.inc.sh local_cleanup() { @@ -69,7 +67,7 @@ function run_tests() { G_TEST_BUILDDIR="$(dirname "$0")/../../../build/$(arch)/${CONFIG}/tests" - setup "$DISPLAY_SERVER" "$ENV_FILE" "$CLEANUP_FILE" "$PID_FILE" --standalone + setup "${DISPLAY_SERVER}" "${ENV_FILE}" "${CLEANUP_FILE}" "${PID_FILE}" --standalone if [[ "${DOCKER_RUNNING:-false}" == "true" ]]; then echo "# NOTE: When the tests fail check ibus-engine-keyman.log, ibus-daemon.log and km-test-server.log in build/docker-linux/tmp/!" diff --git a/resources/build/builder-basic.inc.sh b/resources/build/builder-basic.inc.sh index 94441617b2..a2077b081a 100644 --- a/resources/build/builder-basic.inc.sh +++ b/resources/build/builder-basic.inc.sh @@ -54,6 +54,7 @@ function _builder_basic_find_keyman_root() { KEYMAN_ROOT="${BASH_SOURCE[0]%/*/*/*}" KEYMAN_ROOT="$( cd "$KEYMAN_ROOT" && echo "$PWD" )" readonly KEYMAN_ROOT + export KEYMAN_ROOT fi } diff --git a/resources/docker-images/build.sh b/resources/docker-images/build.sh index bd2323332c..33f638ed6a 100755 --- a/resources/docker-images/build.sh +++ b/resources/docker-images/build.sh @@ -57,7 +57,8 @@ build_action() { # with the tag 'default'. if is_default_values; then builder_echo debug "Setting default tag for ${platform}" - docker_wrapper build -t "${registry_slash}keymanapp/keyman-${platform}-ci:default" "${build_args[@]}" . + docker_wrapper tag "${registry_slash}keymanapp/keyman-${platform}-ci:${build_version}" \ + "${registry_slash}keymanapp/keyman-${platform}-ci:default" fi # shellcheck disable=SC2164,SC2103 cd - @@ -104,7 +105,7 @@ if builder_has_action build; then fi builder_run_action test:core test_action core -builder_run_action test:linux test_action linux +# builder_run_action test:linux test_action linux builder_run_action test:web test_action web # Android uses artifacts from web, so it has to come after web builder_run_action test:android test_action android diff --git a/resources/docker-images/docker-build.inc.sh b/resources/docker-images/docker-build.inc.sh index 8f93034705..6366e7b05d 100644 --- a/resources/docker-images/docker-build.inc.sh +++ b/resources/docker-images/docker-build.inc.sh @@ -87,6 +87,9 @@ setup_docker() { if [[ "${MSYSTEM:-}" == "MINGW64" ]]; then DOCKER_RUN_ARGS+=(--env DOCKER_RUN_AS_ROOT=1) fi + if [[ -z ${DOCKER_RUNNING:-} ]] ; then + DOCKER_RUN_ARGS+=(-t) + fi } setup_container_registry() { diff --git a/resources/docker-images/run.sh b/resources/docker-images/run.sh index 0f0d40b5a9..a07d2ab362 100755 --- a/resources/docker-images/run.sh +++ b/resources/docker-images/run.sh @@ -3,7 +3,6 @@ ## START STANDARD BUILD SCRIPT INCLUDE # adjust relative paths as necessary THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")" -# shellcheck source=resources/build/builder-full.inc.sh . "${THIS_SCRIPT%/*}/../../resources/build/builder-full.inc.sh" ## END STANDARD BUILD SCRIPT INCLUDE @@ -44,21 +43,21 @@ else fi run_android() { - docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -it --rm -v "${KEYMAN_ROOT}":/home/build/build \ + docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -i --rm -v "${KEYMAN_ROOT}":/home/build/build \ -v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \ "${registry_slash}keymanapp/keyman-android-ci:${image_version}" \ "${builder_extra_params[@]}" } run_core() { - docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -it --rm -v "${KEYMAN_ROOT}":/home/build/build \ + docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -i --rm -v "${KEYMAN_ROOT}":/home/build/build \ -v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \ "${registry_slash}keymanapp/keyman-core-ci:${image_version}" \ "${builder_extra_params[@]}" } run_developer() { - docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -it --rm -v "${KEYMAN_ROOT}":/home/build/build \ + docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -i --rm -v "${KEYMAN_ROOT}":/home/build/build \ -v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \ "${registry_slash}keymanapp/keyman-developer-ci:${image_version}" \ "${builder_extra_params[@]}" @@ -67,7 +66,7 @@ run_developer() { run_linux() { mkdir -p "${KEYMAN_ROOT}/linux/build/docker-linux/${build_dir}" mkdir -p "${KEYMAN_ROOT}/linux/keyman-system-service/build/docker-linux/${build_dir}" - docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -it --privileged --rm -v "${KEYMAN_ROOT}":/home/build/build \ + docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -i --privileged --rm -v "${KEYMAN_ROOT}":/home/build/build \ -v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \ -v "${KEYMAN_ROOT}/linux/build/docker-linux/${build_dir}":/home/build/build/linux/build \ -v "${KEYMAN_ROOT}/linux/keyman-system-service/build/docker-linux/${build_dir}":/home/build/build/linux/keyman-system-service/build \ @@ -77,7 +76,7 @@ run_linux() { } run_web() { - docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -it --privileged --rm -v "${KEYMAN_ROOT}":/home/build/build \ + docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -i --privileged --rm -v "${KEYMAN_ROOT}":/home/build/build \ -v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \ "${registry_slash}keymanapp/keyman-web-ci:${image_version}" \ "${builder_extra_params[@]}"