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
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
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
Also cleans up a number of possible quoting issues and shellcheck
directives.
Note: we need to do release builds everywhere to verify that zip changes
are not going to break things.
Test-bot: skip
Build-bot: release
When building locally, code signatures will not have SIL in the name, so
will fail the build. So skip checking code signatures on local builds.
Build-bot: skip release:windows,developer
Test-bot: skip
setting KEYMAN_ROOT
ignoring test:linux until #13887 is fixed
removing docker "-t" option, because there is no terminal to attach
while running on the GitHub server
Test-bot: skip
Build-bot: skip
This change adds an option to skip the API checks during a build.
This can be done by adding the trailer `Keyman-Api-Check: skip`
to the PR description.
Fixes: #10454
Test-bot: skip
Keyman-Api-Check: skip
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
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.