From 5fb9291bbd36ec4b0aa9f78a4f9d457f3da33473 Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Tue, 1 Jul 2025 17:31:04 +0200 Subject: [PATCH 1/4] maint: add TC build scripts for models Fixes: #14192 Part-of: #13399 Test-bot: skip --- .../teamcity/models/models-build-deploy.sh | 46 +++++++++++++++++++ resources/teamcity/models/models-test-prs.sh | 29 ++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 resources/teamcity/models/models-build-deploy.sh create mode 100644 resources/teamcity/models/models-test-prs.sh diff --git a/resources/teamcity/models/models-build-deploy.sh b/resources/teamcity/models/models-build-deploy.sh new file mode 100644 index 00000000..580feebe --- /dev/null +++ b/resources/teamcity/models/models-build-deploy.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +# Keyman is copyright (C) SIL Global. MIT License. + +# 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/builder.inc.sh" +## END STANDARD BUILD SCRIPT INCLUDE + +################################ Main script ################################ + +builder_describe \ + "Build and deploy models" \ + "all run all actions" \ + "build build models" \ + "publish deploy models" \ + "--downloads-keyman-com=DOWNLOADS_KEYMAN_COM_URL URL of downloads server" \ + "--rsync-path=REMOTE_RSYNC_PATH Path to rsync on remote server" \ + "--rsync-dest=RSYNC_DEST Destination for rsync" + +builder_parse "$@" + +function do_build() { + builder_echo "Building all models" + "${REPO_ROOT}/build.sh" + builder_echo "Finished building all models" +} + +function do_publish() { + builder_echo "Uploading models to downloads.keyman.com" + "${REPO_ROOT}/ci.sh" + builder_echo "Finished uploading models to downloads.keyman.com" +} + +cd "${REPO_ROOT}" + +if builder_has_action all; then + do_build + do_publish +else + builder_run_action build do_build + builder_run_action publish do_publish +fi diff --git a/resources/teamcity/models/models-test-prs.sh b/resources/teamcity/models/models-test-prs.sh new file mode 100644 index 00000000..4dfa1001 --- /dev/null +++ b/resources/teamcity/models/models-test-prs.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +# Keyman is copyright (C) SIL Global. MIT License. + +# 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/builder.inc.sh" +## END STANDARD BUILD SCRIPT INCLUDE + +################################ Main script ################################ + +builder_describe \ + "Test build of pull request" \ + "all run all actions" + +builder_parse "$@" + +function do_build() { + builder_echo "Building all models" + "${REPO_ROOT}/build.sh" + builder_echo "Finished building all models" +} + +cd "${REPO_ROOT}" + +builder_run_action all do_build From e99d624fd838382517e73ac3fe313d6d5e6dcefc Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Thu, 28 Aug 2025 17:27:55 +0200 Subject: [PATCH 2/4] maint: address code review comments Co-authored-by: Marc Durdin --- resources/teamcity/models/models-build-deploy.sh | 13 +++++++++++++ resources/teamcity/models/models-test-prs.sh | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) mode change 100644 => 100755 resources/teamcity/models/models-build-deploy.sh mode change 100644 => 100755 resources/teamcity/models/models-test-prs.sh diff --git a/resources/teamcity/models/models-build-deploy.sh b/resources/teamcity/models/models-build-deploy.sh old mode 100644 new mode 100755 index 580feebe..5281702c --- a/resources/teamcity/models/models-build-deploy.sh +++ b/resources/teamcity/models/models-build-deploy.sh @@ -23,6 +23,10 @@ builder_describe \ builder_parse "$@" +export DOWNLOADS_KEYMAN_COM_URL +export REMOTE_RSYNC_PATH +export RSYNC_DEST + function do_build() { builder_echo "Building all models" "${REPO_ROOT}/build.sh" @@ -30,6 +34,15 @@ function do_build() { } function do_publish() { + if [[ -z "${DOWNLOADS_KEYMAN_COM_URL+x}" ]]; then + builder_die "Option --downloads-keyman-com must be specified for publish action" + fi + if [[ -z "${REMOTE_RSYNC_PATH+x}" ]]; then + builder_die "Option --rsync-path must be specified for publish action" + fi + if [[ -z "${RSYNC_DEST+x}" ]]; then + builder_die "Option --rsync-dest must be specified for publish action" + fi builder_echo "Uploading models to downloads.keyman.com" "${REPO_ROOT}/ci.sh" builder_echo "Finished uploading models to downloads.keyman.com" diff --git a/resources/teamcity/models/models-test-prs.sh b/resources/teamcity/models/models-test-prs.sh old mode 100644 new mode 100755 index 4dfa1001..13097a69 --- a/resources/teamcity/models/models-test-prs.sh +++ b/resources/teamcity/models/models-test-prs.sh @@ -20,7 +20,7 @@ builder_parse "$@" function do_build() { builder_echo "Building all models" - "${REPO_ROOT}/build.sh" + "${REPO_ROOT}/build.sh" configure build test builder_echo "Finished building all models" } From a9804a4eefbb9acb1870ba18d1a6955bf859c8c0 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Mon, 1 Sep 2025 05:43:17 +0200 Subject: [PATCH 3/4] Apply suggestions from code review --- resources/teamcity/models/models-build-deploy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/teamcity/models/models-build-deploy.sh b/resources/teamcity/models/models-build-deploy.sh index 5281702c..04dfd031 100755 --- a/resources/teamcity/models/models-build-deploy.sh +++ b/resources/teamcity/models/models-build-deploy.sh @@ -29,7 +29,7 @@ export RSYNC_DEST function do_build() { builder_echo "Building all models" - "${REPO_ROOT}/build.sh" + "${REPO_ROOT}/build.sh" configure build test builder_echo "Finished building all models" } From 827c8142ac202627ec1fa0aa55d31b7cfe69b282 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Mon, 1 Sep 2025 13:07:54 +0200 Subject: [PATCH 4/4] maint: remove now-unused servervars.sh references --- .gitignore | 1 - ci.sh | 1 - 2 files changed, 2 deletions(-) diff --git a/.gitignore b/.gitignore index e55d834b..71b3d24c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ node_modules/ release/*/*/build/ sample/*/*/build/ experimental/*/*/build/ -servervars.sh .cache *.kpj.user diff --git a/ci.sh b/ci.sh index 4a1be294..c8bb1c89 100755 --- a/ci.sh +++ b/ci.sh @@ -23,7 +23,6 @@ else APP7Z="/c/Program Files/7-Zip/7z.exe" fi -. "$MODELROOT/servervars.sh" . "$MODELROOT/resources/util.sh" . "$MODELROOT/resources/rsync-tools.sh"