Commit graph

2042 commits

Author SHA1 Message Date
Marc Durdin
38c2d031bb maint(resources): roll back builder_launch for trigger-release-builds.sh
The trigger-release-builds.sh script is not a full builder script, and
does not setup all the necessary environment for using `builder_launch`.
This causes a script error:

```
[resources/teamcity/triggers] ## script '/resources/build/version/build.sh ' launched...
/c/BuildAgent/work/99b311828f4ee7c/keyman/resources/builder.inc.sh: line 517: _builder_build_deps: unbound variable
```

So, rolling this back to a direct call to the script, at least until we
update trigger-release-builds to be a full builder script.

Test-bot: skip
Build-bot: skip
2025-12-08 07:30:49 +01:00
Marc Durdin
f813442c40
Merge pull request #15276 from keymanapp/revert-14799-change/windows/include-map2pdb-for-relevant-projects
change(windows): Revert "change(windows): include map2pdb generation for relevant Delphi projects"
2025-12-05 07:10:52 +01:00
Marc Durdin
76baf1a6d6
Merge pull request #15258 from keymanapp/maint/common/15130-use-builder_launch-for-child-builds
maint(common): use `builder_launch` for child builds
2025-12-05 07:10:44 +01:00
Marc Durdin
c3a8fdec13
Merge pull request #15257 from keymanapp/maint/resources/verify-order-of-builder_int_deps
maint(resources): verify order of builder_describe_internal_dependency
2025-12-05 07:10:37 +01:00
Marc Durdin
6c99f33bcc
Revert "change(windows): include map2pdb generation for relevant Delphi projects" 2025-12-03 14:13:54 +01:00
Marc Durdin
0d8999574a
Merge pull request #15184 from keymanapp/dependabot/npm_and_yarn/resources/build/pr-build-status/glob-10.5.0
chore(deps-dev): bump glob from 10.4.5 to 10.5.0 in /resources/build/pr-build-status
2025-12-03 13:45:25 +01:00
Marc Durdin
024432377a
Merge pull request #15173 from keymanapp/dependabot/npm_and_yarn/resources/build/pr-build-status/js-yaml-4.1.1
chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1 in /resources/build/pr-build-status
2025-12-03 13:42:16 +01:00
Marc Durdin
c524db41b9 maint(common): use builder_launch for child builds
Fixes: #15130
Test-bot: skip
2025-12-02 06:17:31 +01:00
Marc Durdin
9335a82530 maint(core): verify that keyman_core_ldml.h is in sync
Fixes: #15254
Test-bot: skip
Build-bot: skip build:linux,mac,windows
2025-12-01 17:11:57 +01:00
Marc Durdin
94ac669ec1 maint(resources): verify order of builder_describe_internal_dependency
Test-bot: skip
2025-12-01 16:47:50 +01:00
Marc Durdin
ca77e41d74 change(windows): add unit testing to keyman32 build
Rename keyman-engine-tests.vcxproj to keyman32.tests.vcxproj, move up a
folder, rename other files to match test filename conventions, update
vcxproj for vs2022, and build and run this from build.sh:test.

Also remove keyman-engine.vcxproj, instead integrating the static lib
version of keyman32 into keyman32.vcxproj. One day in the future, we
could split back the other way, and have the DLL be essentially a link
action from the .lib, but that's higher complexity to setup.

Add a configuration step to install NuGet packages for Google Test
specifically for keyman32.tests.vcxproj. If we add Google Test to other
msbuild projects, we could move the packages/ up to top level of the
repo in the future (similar to node_modules) to reduce number of
configuration downloads.

Build-bot: skip build:windows,developer
Test-bot: skip
2025-11-27 09:11:39 +01:00
rc-swag
85dcdcf066 feat(windows): update wix to 3.14.1
Update the WiX toolset build version to 3.14.1 for Arm64.

Fixes: #15192
2025-11-20 15:35:46 +10:00
dependabot[bot]
4a76721f45
chore(deps-dev): bump glob in /resources/build/pr-build-status
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 10.5.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-18 22:23:08 +00:00
Marc Durdin
6e470efa3e
Merge pull request #14799 from keymanapp/change/windows/include-map2pdb-for-relevant-projects
change(windows): include map2pdb generation for relevant Delphi projects
2025-11-17 17:02:25 +01:00
dependabot[bot]
583f5eef11
chore(deps-dev): bump js-yaml in /resources/build/pr-build-status
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-14 17:46:41 +00:00
Marc Durdin
57c0fa3d03
Merge pull request #15129 from keymanapp/maint/resources/builder_launch
maint(resources): add `builder_launch` function
2025-11-14 14:24:19 +01:00
Marc Durdin
8f95d84014
Merge pull request #15114 from keymanapp/maint/resources/builder-timing
maint(resources): add build timing report to builder
2025-11-14 14:24:11 +01:00
Marc Durdin
7d6e04f9ac
Apply suggestions from code review
Build-bot: skip
2025-11-14 13:58:16 +01:00
Marc Durdin
0988a86fa4 maint(resources): improve builder_launch to allow for arbitrary parameters
Also cleans up reporting of child scripts and links the list of reserved
parameters across a few locations. Address review comments.
2025-11-14 10:44:35 +01:00
Marc Durdin
edca16f508 change(windows): include map2pdb generation for relevant Delphi projects
Adds a call to map2pdb for Delphi projects, if map2pdb is an executable
on the path. This way, we get .pdb files we can use for debugging and
for performance profiling. This also replaces tds2dbg.

If map2dbg is available, then the build and install actions will copy
the PDB to be alongside the corresponding executable, making most debug
actions relatively seamless for finding symbols.

Also fixes up setup.exe in Windows and Developer to extend setup.exe to
a 512-byte boundary after map2pdb patches the PE.

Relates-to: #14787
Build-bot: skip release:developer,windows
Test-bot: skip
2025-11-13 14:48:18 +01:00
Eberhard Beilharz
2d8a4aeebc
maint(core): fix option defaults for Meson >= 1.1
Meson 1.1 changed the name of the options file from `meson_options.txt`
to `meson.options`. Currently we're stuck with Meson 1.0 as minimum
Meson version because we still support Ubuntu 22.04 Jammy, but on some
machines a newer version of meson gets installed which causes the
options to be ignored.

The first attempt to simply symlink or copy `meson_options.txt` to
`meson.options` failed because git on Windows doesn't support symlinks
by default, and Meson complains if it finds two options files (#15127).

Fortunately not having an options file is only a problem for Core where
we have one option in the options file that defaults to true. The solution
implemented in this change is to always pass the option to Meson.

Test-bot: skip
2025-11-10 15:24:46 +01:00
Marc Durdin
5dbc438f53 maint(resources): add builder_launch function
Use `builder_launch` to launch other builder scripts rather than calling
directly, so that inheritable state and options are passed through.

Test-bot: skip
2025-11-10 11:46:14 +01:00
Marc Durdin
c573709ee6 maint(resources): add build timing report to builder
This is enabled automatically for CI builds, and can be enabled with
`--timing` parameter otherwise. Also, adds `builder_launch`,
documentation to come.

Test-bot: skip
2025-11-10 11:03:45 +01:00
Markus Greiner
f92483d630
Merge pull request #14900 from keymanapp/fix/common/match-container-permissions
maint(resources): Docker container changes permissions to match the file owner uid and gid
2025-11-04 23:06:28 +01:00
Markus Greiner
473b177050 Handle uid and gid the same way as in the other Dockerfiles 2025-11-04 22:53:26 +01:00
Markus Greiner
e86c419a42
Update resources/docker-images/android/Dockerfile
Forgotten to remove when CHANGE_PERMISSIONS was invented.

Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2025-11-04 22:48:00 +01:00
Marc Durdin
29b02fb955 docs(windows): visual studio 2022
Build-bot: skip
2025-10-31 07:23:43 +01:00
Marc Durdin
3fc29928da maint(resources): include sourcemaps in npm publish
Build-bot: skip release:developer
Test-bot: skip
2025-10-29 17:12:52 +01:00
Marc Durdin
ba9500826d maint(resources): add npm pack/publish to pr-build-status bot 2025-10-29 10:29:14 +01:00
Marc Durdin
f9b25890b6 maint(resources): add meson and emscripten setup to npm-publish
Also splits the build and publish steps so all packages are built before
first is published, as publishing stomps on package.json files, which
makes subsequent builds trickier.

This needs to be merged to master in order for the action steps to pass.

Build-bot: skip
Test-bot: skip
2025-10-29 10:27:29 +01:00
Marc Durdin
3040c72174 maint(resources): skip nvm in npm-publish script
Test-bot: skip
Build-bot: skip
2025-10-28 15:28:24 +01:00
Marc Durdin
e20eb7b4db
Merge pull request #15038 from keymanapp/maint/resources/npm-publish-build-first
maint(resources): add build and test for npm packaging and add status check results
2025-10-28 15:00:04 +01:00
Marc Durdin
17cc7fd321 maint(resources): fix build call in npm-publish 2025-10-28 13:41:55 +01:00
Marc Durdin
fe7209cdeb maint(resources): verify keyman_root 2025-10-28 13:40:48 +01:00
Marc Durdin
7e1d38b498
Merge pull request #15028 from keymanapp/maint/mac/tweak-macos-env
maint(mac): minor tweaks to mac setup, using build.sh
2025-10-28 13:31:39 +01:00
Marc Durdin
c282e557c4 maint(resources): add build and test for npm packaging
Test-bot: skip
Build-bot: skip release:developer
2025-10-28 13:10:04 +01:00
Marc Durdin
ba411774f6 maint(resources): move NPM package publishing to GitHub Actions
Due to recent changes in NPM package publishing security requirements,
we have to move from TeamCity build to a GitHub Action to publish our
NPM packages, so we can take advantage of trusted publishing. This
change also consolidates and centralizes the npm publishing into
resources/build/ci/npm-publish.sh, which removes a lot of boilerplate
from each of the build.sh scripts, and ensures consistency.

Packages will be `npm pack`ed on PR and test builds, and published in
release builds.

Ref: https://docs.npmjs.com/trusted-publishers
Ref: https://github.blog/changelog/2025-09-29-strengthening-npm-security-important-changes-to-authentication-and-token-management/
Fixes: #14963
Test-bot: skip
Build-bot: release:developer
2025-10-27 16:31:55 +01:00
Marc Durdin
1d223908ff maint(mac): minor tweaks to mac setup, using build.sh
Build-bot: skip
Test-bot: skip
2025-10-27 09:10:33 +01:00
Markus Greiner
d9b4ec9baf Weakening condition for gid and uid (after review
Test-bot: skip
Build-bot: skip
2025-10-22 18:02:17 +02:00
Markus Greiner
c9b44d33c7 Changing permissions only in the case if building and testing on GitHub 2025-10-22 15:39:17 +02:00
Markus Greiner
54f5fc1ea3 Privileged mode is not required. 2025-10-21 15:59:06 +02:00
Markus Greiner
fb14a67db6 Docker changes permissions to match the file owner uid and gid
There is an issue that the Docker containers cannot modify the
files on KEYMAN_ROOT, since the user running build and tests on
Docker does not have the same gid and uid as the host user starting
the container.
The issue is solved by temporarily changing the uid and gid to
match the container user's uid and gid.

Test-bot: skip
Build-bot: skip
2025-10-21 15:59:06 +02:00
Marc Durdin
f8c63ed65d
Merge pull request #14893 from keymanapp/maint/trigger-more-logging
maint(resources): fix watch bug for common files, and add more logging for triggering builds
2025-10-10 05:03:31 +02:00
Marc Durdin
69922d0ba3 maint(resources): further logging and fix indirection bug with watch 2025-10-06 16:55:02 +02:00
Eberhard Beilharz
65f2e354eb
maint(linux): suppress output of stopping processes after test run
This change suppresses the output of ending the processes started for
the test run. The output doesn't help much but clutters the overall
output and shows up as warnings on TC.
2025-10-06 16:13:44 +02:00
Eberhard Beilharz
229bdf8270
maint(resources): nest unit tests under parent block
This adds a modified `mocha-teamcity-reporter` that allows to nest the
unit tests under the parent block.

Fixes: #14839
Test-bot: skip
2025-10-06 16:09:47 +02:00
Marc Durdin
ebc137ab11 maint(resources): more logging for triggered builds
Add a list of all files modified in the PR; removes 'web' from windows
build target.

Test-bot: skip
2025-10-06 15:44:38 +02:00
Eberhard Beilharz
6c2237d800
Merge pull request #14817 from keymanapp/maint/linux/13887_integrtests
maint(linux): fix integration tests in Docker

This PR allows the integration tests to work when running them in a Docker container. Also fixes things when running on TC's Ubuntu 24.04 Noble build agent, and improves the behavior when running directly on a developer's machine (previously typing stopped working after the tests...).

Also fixes building mcompile in a Docker container.

Fixes: #13887
2025-10-06 12:01:38 +02:00
Eberhard Beilharz
b302da5094
refactor(web): address code review comments 2025-10-02 10:47:49 +02:00
Eberhard Beilharz
34c43b1e15
refactor(web): cleanup in test scripts
Also use common function for running web types tests.

Test-bot: skip
2025-09-30 17:40:15 +02:00