Commit graph

2155 commits

Author SHA1 Message Date
Eberhard Beilharz
1e7ba23668
refactor(common): fix build-bot trigger script
Also rename variables to make it clearer that `buildBotCommand` contains
multiple commands.
2025-08-27 17:32:05 +02:00
Marc Durdin
6c2ef33492 maint(resources): fix parse bug in build-bot and add extra logging
Fixes: #14565
Build-bot: skip build:common
Test-bot: skip
2025-08-27 14:12:51 +02:00
Marc Durdin
ec8a9235f3 maint(resources): use correct version for PR title for history cherry-pick
Build-bot: skip
Test-bot: skip
2025-08-27 13:12:13 +02:00
Marc Durdin
7390cc66aa maint(resources): move build trigger scripts into resources/teamcity
This also removes the need to have a test for `-b` parameter in
trigger-test-builds.sh, because the TC scripts calling this can already
factor that in.

Testing script trigger so only do builds of common to verify

Fixes: #14483
Test-bot: skip
Build-bot: skip:all build:common
2025-08-27 07:28:24 +02:00
Eberhard Beilharz
d16a46d5ad
feat(resources): add option to suppress output to bash testing framework
This change adds the `--quiet` option to the `run_tests` function of
the testing framework. This will redirect the regular output to a log
file (`/tmp/<testname>.log`) and only output the pass/failed result.
2025-08-25 17:35:27 +02:00
Eberhard Beilharz
609edbb19a
Merge branch 'master' into refactor/common/shellcheck 2025-08-25 12:12:02 +02:00
Marc Durdin
0d71006269 maint(resources): automatically cherry-pick history updates to master
See #14588 for example of working PR.

Build-bot: skip
Test-bot: skip
2025-08-25 05:00:30 +02:00
Eberhard Beilharz
4c57967e79
refactor(common): fix shellcheck warnings
Test-bot: skip
2025-08-22 17:52:09 +02:00
Markus Greiner
68b5c3463b
Merge pull request #14568 from keymanapp/maint/common/move-node-related-functions-out-of-utils.inc.sh-missing-parts
maint(common): rename and move node-related script functions into node.inc.sh
2025-08-21 11:00:46 +02:00
Eberhard Beilharz
c725dcd637
refactor(linux): remove unnecessary cd and subshell
It's not necessary to switch to the help.keyman.com directory before
calling the `help-keyman-com.sh` script, so this change removes that
and also the surrounding sub-shell.

Build-bot: skip
Test-bot: skip
2025-08-20 17:55:27 +02:00
Eberhard Beilharz
3c4264387c
refactor(linux): allow to run launchpad.sh from any directory
Previously the assumption was that `launchpad.sh` would be run from the
`linux` directory. This change sets the directory at the beginning of
the script, allowing it to be run from any directory. Also specify full
path to `launchpad.sh` in the TC build script.

Build-bot: skip
Test-bot: skip
2025-08-20 17:53:57 +02:00
Eberhard Beilharz
26b8495234
maint(linux): add missing --help.keyman.com option
This allows to specify the path to help.keyman.com in the TC build
config rather than an environment variable.

Build-bot: skip
Test-bot: skip
2025-08-20 16:44:58 +02:00
Marc Durdin
2b0db1eb51
Merge pull request #14490 from keymanapp/maint/android/14284-publish-sentry-symbols-on-release-buildlevel
maint(android): publish symbols to Sentry on release buildLevel 🦌
2025-08-20 20:20:25 +07:00
Marc Durdin
8ef8871eca
Merge pull request #14562 from keymanapp/maint/mac/14478-mac-inc-prefix
maint(mac): use mac_ prefix for functions in mac.inc.sh
2025-08-20 19:24:13 +07:00
Eberhard Beilharz
578b4a9f4e
Merge pull request #14154 from keymanapp/maint/common/14153_docker
By default Git Bash converts paths starting with `/`, so running the docker image fails with errors or files mentioning `\Program Files\Git\` (e.g. https://github.com/keymanapp/keyman/pull/14058#issuecomment-2951820833). This change adds a wrapper function that prevents the conversion and thus uses the paths in the correct form when calling docker.

Since the docker builds run on Linux they expect LF line endings. If the scripts are checked out with CRLF line endings, they look for things like `bash^M`. While there are workarounds to some degree, I didn't found a solution that would fully work with our scripts. So in the end this PR now always checks out scripts with LF line endings, even on Windows.

If you test this you'll have to re-checkout the source tree so that you end up with LF line endings.

Fixes: #14153
2025-08-20 14:16:14 +02:00
Markus Greiner
acaeb6aa02 maint(common): rename and move node-related script functions into node.inc.sh
Consolidates the node-related script functions into node.inc.sh, as part
        of cleaning up the build scripts and making them easier to maintain into
        the future. In the earlier commite some changes were missing.

        Follows: #14540
        Fixes: #14447

        Build-bot: skip
        Test-bot: skip
2025-08-20 10:44:56 +02:00
Eberhard Beilharz
c8cc5518df
Update resources/docker-images/README.md
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-08-20 08:46:02 +02:00
Marc Durdin
0d27ac91f7 maint(mac): use mac_ prefix for functions in mac.inc.sh
* Also renames resources/environment.sh to resources/build/mac/xcode-environment.inc.sh.
* Adds a few more exclusions to linux/scripts/dist.sh

Fixes: #14478
Test-bot: skip
Build-bot: build
2025-08-20 05:40:32 +02:00
Marc Durdin
290722bc5f maint(resources): handle unset build platform in trigger-build-bot
When #14551 and #14552 merged, it resulted in a bug which was exposed by
the unit tests (yay!).

Follows: #14551
Follows: #14552
Build-bot: skip:all build:common_windows,common_mac,common_linux
Test-bot: skip
2025-08-19 16:56:09 +02:00
Marc Durdin
a5b38d0713
Merge pull request #14552 from keymanapp/maint/resources/14506-dont-fallback-to-build-on-unsupported-targets-in-child-builds
maint(resources): don't fall back to 'build' action
2025-08-19 21:46:47 +07:00
Marc Durdin
209831f9cd chore(resources): Merge branch 'master' into maint/resources/14548-respect-build-bot-skip 2025-08-19 16:43:43 +02:00
Marc Durdin
51d4fb11e6 maint(resources): remove old trigger-build-bot.inc.sh, add _ to new
Fixes: #14506
2025-08-19 12:56:28 +02:00
Marc Durdin
4ea62a6455 maint(resources): also allow _ in build bot commands 2025-08-19 12:50:32 +02:00
Marc Durdin
6fc429a77e chore(resources): Merge branch 'maint/resources/14506-dont-fallback-to-build-on-unsupported-targets-in-child-builds' 2025-08-19 12:48:01 +02:00
Marc Durdin
990df1fb1f maint(resources): allow comma in build bot commands 2025-08-19 12:44:14 +02:00
Marc Durdin
bb1f2006f1
Merge branch 'master' into maint/resources/14506-dont-fallback-to-build-on-unsupported-targets-in-child-builds 2025-08-19 17:39:29 +07:00
Marc Durdin
50a03b502a maint(resources): don't fall back to 'build' action
When an unsupported action is provided to a child build, then don't fall
back to the default action 'build', because generally that is not what
we want -- we want a no-op

Fixes: #14506
Build-bot: skip:all build:common_linux,common_mac,common_windows
Test-bot: skip
2025-08-19 12:32:46 +02:00
Marc Durdin
47a24a8481 maint(resources): match platforms on whole-word only
Fixes: #14548
2025-08-19 11:29:08 +02:00
Marc Durdin
059e77c993 maint(resources): further tweaks on reading build bot commands
Fixes: #14548
2025-08-19 11:18:03 +02:00
Marc Durdin
726baa75b1 maint(resources): improve logging for build bot commands
Fixes: #14548
2025-08-19 11:11:51 +02:00
Marc Durdin
1c23752bd5 maint(resources): handle build-bot skip correctly
Fixes: #14548
Build-bot: skip
Test-bot: skip
2025-08-19 11:02:11 +02:00
Marc Durdin
81c807c257 chore(common): Merge branch 'master' into maint/common/14453-move-ci-scripts 2025-08-19 10:46:11 +02:00
Eberhard Beilharz
e98f2bb53c
maint(common): add warning about not mixing build platforms
Developers have to be consistent if they build on Windows/git-bash or
in WSL/Docker. Mixing builds without cleaning the repo first will fail.
See https://github.com/keymanapp/keyman/pull/14154#issuecomment-3182076088.

Build-bot: skip
Test-bot: skip
2025-08-18 17:51:00 +02:00
Eberhard Beilharz
72d8b705ff
maint(common): on Windows build as root inside docker container
This fixes a permission problem when we run docker from git bash.
On Windows we want to build as _root_ inside of the docker container.
This gives the necessary permissions due to the way the Windows user
is mapped to git bash/mingw and the docker container. On Linux
however we want to build as _build_ user inside the container so that
files we create are owned by the host user.

See https://github.com/keymanapp/keyman/pull/14154#issuecomment-2970577312
for further explanation.
2025-08-18 17:50:29 +02:00
Eberhard Beilharz
57a9583093
maint(common): disable path conversions on Windows
By default Git Bash converts paths starting with `/`, so running the
docker image fails with errors or files mentioning `\Program Files\Git\`.
This change adds a wrapper function that prevents the conversion
and thus uses the paths in the correct form when calling docker.
2025-08-18 17:50:28 +02:00
Markus Greiner
72214187c5 maint(common): rename and move node-related script functions into node.inc.sh
Consolidates the node-related script functions into node.inc.sh, as part
    of cleaning up the build scripts and making them easier to maintain into
    the future. In the earlier commite some changes were missing.

    Fixes: #14447
2025-08-18 11:42:54 +02:00
Marc Durdin
223332cb53 maint(resources): add space to test-bot command
Follows: #14526
Test-bot: skip
Build-bot: skip
2025-08-14 10:53:53 +02:00
Marc Durdin
47bfdd341f
Merge pull request #14504 from keymanapp/maint/resources/14502-auto-merge-approve-prep
maint(resources): add build-bot commands to increment-version auto PRs
2025-08-14 09:29:26 +07:00
Marc Durdin
bdbd748d82
Merge pull request #14458 from keymanapp/maint/common/mac-scripts
maint(common): reorganize mac/ios build script includes 🐸
2025-08-12 10:41:35 +07:00
Marc Durdin
3c5bcf6c10
Merge pull request #14452 from keymanapp/maint/common/14448-typescript.inc.sh
maint(common): move typescript script functions into typescript.inc.sh 🐸
2025-08-12 10:41:26 +07:00
Marc Durdin
942b06afdd
Merge pull request #14451 from keymanapp/maint/common/14447-node.inc.sh
maint(common): rename and move node-related script functions into node.inc.sh 🐸
2025-08-12 10:41:18 +07:00
Marc Durdin
a81138c62b
Merge pull request #14449 from keymanapp/maint/common/14065-consolidate-builder-scripts
maint(common): consolidate builder scripts 🐸
2025-08-12 10:41:09 +07:00
Marc Durdin
f95b26ac1f
Merge pull request #14446 from keymanapp/maint/common/14275-rename-and-cleanup-shellHelperFunctions.sh
maint(common): rename shellHelperFunctions.sh to utils.inc.sh 🐸
2025-08-12 10:40:59 +07:00
Marc Durdin
f74ffb6146 maint(resources): add build-bot commands to increment-version auto PRs
Note: this does not remove auto merge from the
auto-merge-keyman-server-pr.yml GHA at this time, because that would
require us to use graphql to mark PRs as auto-merge, and we are not
quite ready to do that. So we'll continue to use the automerge action
for now.

The scope for pull request events has been expanded on
auto-merge-keyman-server-pr.yml so that updates to build status trigger
the automerge as needed.

Fixes: #14502
Build-bot: skip
Test-bot: skip
2025-08-12 05:07:23 +02:00
Keyman Server
33024e4dda
Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2025-08-11 08:26:02 -07:00
Marc Durdin
1bb111edea maint(android): publish symbols to Sentry on release buildLevel
Refactor the publish action for Android to ensure that symbols are
published to Sentry for any 'release' buildLevel -- test releases and
alpha/beta/stable releases.

Splits the publish action into `publish-symbols` and
`publish-play-store` so that they can be run separately as needed, as
symbols can be published for test builds, but play store is only touched
for actual releases.

Note: examining the build logs and Sentry server state, it looks like
the publish to Sentry has not been happening for quite a while, so this
commit refactors the Sentry publishing code and establishes the
fv-keyboards publish target also.

Fixes: #14284
Build-bot: release
Test-bot: skip
2025-08-11 05:10:28 +02:00
Marc Durdin
75f0d657bb maint(ios): add todo on --pr-number
Build-bot: skip
2025-08-10 05:03:01 +02:00
Marc Durdin
d413922465 chore(ios): Merge branch 'maint/ios/14286-skip-publishing-on-build-buildlevel' 2025-08-09 04:50:13 +02:00
Marc Durdin
eba4977cf9 maint(ios): remove unnecessary PR number check
The check for PR number vs base branch is no longer necessary, as this
is controlled by buildLevel instead. Removing it.

Note that the `--pr-number` parameter is no longer required in
keyman-ios-test.sh. See comment inline.
2025-08-09 04:49:13 +02:00
Marc Durdin
d678215371
Merge branch 'maint/resources/14419-build-sh-style-build-bot' into maint/ios/14286-skip-publishing-on-build-buildlevel 2025-08-07 11:44:22 +07:00