Commit graph

349 commits

Author SHA1 Message Date
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
Eberhard Beilharz
a666072679
docs(linux): address code review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-10-16 16:38:50 +02:00
Eberhard Beilharz
19c09e8bc3
docs(linux): update packaging documentation 2025-10-15 11:57:02 +02:00
Eberhard Beilharz
152a9122fe
docs(linux): improve documentation for installing km-config
Test-bot: skip
2025-10-15 11:57:01 +02:00
Eberhard Beilharz
167ec33d54
chore(linux): Merge remote-tracking branch 'origin/master' into maint/linux/remotedbgdocker 2025-09-30 08:29:02 +02:00
Eberhard Beilharz
db3cd5092d
maint(linux): remove several shellcheck directives and warnings
This change improves our `.shellcheckrc` file so that several directives
are no longer needed and source files are still found. Also remove some
directives that are no longer necessary, either because the changes to
`.shellcheckrc` makes them obsolete, or because the lines changed so
that they no longer contain the problem.

Also remove some shellcheck warnings.

Build-bot: skip
Test-bot: skip
2025-09-23 18:30:16 +02:00
Eberhard Beilharz
23f8c59c07
maint(linux): allow to remote debug integration tests in Docker
This adds a `--remote-debug` option to `resources/docker-images/run.sh`.
If specified the container will expose `localhost:2345` for remote
debugging inside of the container.

This is useful for debugging integration tests in the container.

Build-bot: skip
Test-bot: skip
2025-09-23 18:20:32 +02:00
Darcy Wong
8321294e1e chore(common): Update to Unicode 17.0 2025-09-11 11:28:47 +07:00
Eberhard Beilharz
612cd01743
maint(linux): allow to skip API check
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
2025-09-05 19:04:23 +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
Marc Durdin
40253fd4eb docs(resources): note on builder-basic vs builder-full
Relates-to: https://github.com/keymanapp/keyman/pull/14449#discussion_r2265813020
Build-bot: skip
Test-bot: skip
2025-08-12 05:46:16 +02: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
3292c0add7
Merge branch 'docs/resources/14266-clarify-build-bot' into maint/resources/14419-build-sh-style-build-bot 2025-08-07 11:43:17 +07:00
Marc Durdin
4060b60594
Merge branch 'master' into docs/resources/14266-clarify-build-bot 2025-08-07 11:43:02 +07:00
Marc Durdin
e6aa384e07 maint(resources): build.sh-style commands for build-bot
Legacy format will still work, but preferred format is now
`Build-bot: level:platform[,...platform] ...`

Fixes: #14419
Build-bot: build
Test-bot: skip
2025-08-05 19:58:25 +10:00
Marc Durdin
acefdf281a maint(common): move typescript script functions into typescript.inc.sh
Fixes: #14448
Build-bot: build
Test-bot: skip
2025-08-03 07:01:57 +10:00
Marc Durdin
2726050601 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.

Fixes: #14447
2025-08-02 13:34:29 +10:00
Marc Durdin
f394245636 maint(common): consolidate builder scripts
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.

Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh

Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
  android/build.sh.
* Renames functions in builder-basic.inc.sh

More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.

Fixes: #14065
Build-bot: build all
Test-bot: skip
2025-08-02 08:11:24 +10:00
Darcy Wong
1e2b533e61 docs(common): Document minimum version of Chrome 95.0 for Android 2025-07-22 08:51:55 +07:00
Eberhard Beilharz
3b136fcec9
maint(common): consolidate functions to determine OS
- add `builder_is_windows`, `builder_is_macos` and `builder_is_linux`
  functions
- add/move `BUILDER_OS` env variable to `resources/builder.inc.sh`
- use the new functions and env variable

Fixes: #14109
Test-bot: skip
2025-07-09 18:33:09 +02:00
Marc Durdin
2668dfc76d docs(resources): clarify Build-bot usage
Fixes: #14266
2025-07-04 13:01:22 +10:00
Marc Durdin
dde272ac27
Merge branch 'master' into feat/resources/14200-builder-ignore-unknown-for-script-integrations 2025-06-24 06:10:12 +07:00
Marc Durdin
7915793d9e docs(common): clarify when release builds are run
Build-bot: skip
2025-06-24 08:52:05 +10:00
Marc Durdin
8145c017d7 feat(resources): support ignoring unknown options in builder
Fixes: #14200
Test-bot: skip
2025-06-24 07:12:09 +10:00
Marc Durdin
94cdf834df maint(common): polish docs and add tests for build-bot 2025-06-23 05:05:01 +10:00
Marc Durdin
d4fd05f470 docs(common): add build-bot documentation 2025-06-14 07:29:49 +10:00
Eberhard Beilharz
08b31907b5
Update docs/build/linux-ubuntu.md
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-06-03 18:25:34 +02:00
Eberhard Beilharz
ea8eea1cfa
maint(developer): add docker image to build developer node modules
Also update build documentation.

Fixes: #14045
Test-bot: skip
2025-05-27 18:17:16 +02:00
Joshua Horton
bfb97ca0c6 maint(web): upgrade Sentry to 8.55.0
Fixes: KEYMAN-WEB-RX
(It was produced artificially after this PR's changes to validate them.)

Cross-reference with https://github.com/getsentry/sentry-javascript/blob/master/docs/migration/v7-to-v8.md in regard to minimum supported versions.

@keymanapp-test-bot skip
2025-05-22 14:02:16 +07:00
Joshua Horton
2721c74a91 maint: change builder_completion script to a .inc.sh
Fixes: #14004
2025-05-21 11:36:58 +07:00
Joshua Horton
dfad7a4e25 maint: update macOS env setup + documentation
Fixes: #13177

We now need to install sdkmanager through a different Homebrew package /
"cask".  This does get us `sdkmanager`, but it has a new default location
for its Android SDK, while our builds still refer to the old location
under the home directory.  The build script thus needs a bit of tweaking
to force `sdkmanager` to operate based on the location we've previously
referred to.

Additionally, macOS machines typically default to the zsh terminal these
days, so the old profile auto-config doesn't work.  This adds and
documents example profile script that can be used to configure a macOS
dev machine's terminal environment.
2025-05-19 14:24:26 +07:00
Eberhard Beilharz
09da7c0b10
Merge pull request #13892 from keymanapp/maint/common/13885_movefuncs
This change moves the `build_is_ci_*` functions from `resources/build/build-utils-ci.inc.sh` → `resources/builder.inc.sh`.
It also adds documentation for them.

Fixes: #13885 
Fixes: #13886
2025-05-13 09:00:56 +02:00
Darcy Wong
eedfcf2f0e chore: Merge remote-tracking branch 'origin/master' 2025-05-13 07:05:25 +07:00
Eberhard Beilharz
07f38602c8
docs(common): document builder_is_ci_* functions
Fixes: #13886
Test-bot: skip
2025-05-12 18:17:05 +02:00
Eberhard Beilharz
d307051836
Merge pull request #13854 from keymanapp/maint/common/versionvars
Previously the builder scripts defined a readonly `VERSION` environment variable for the Keyman version. That caused problems when another (external) script tried to define a `VERSION` variable. We encountered this problem when trying to move the TC build steps of a configuration into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.

This change uses a Keyman specific prefix for the version variables and renames `VERSION` → `KEYMAN_VERSION` etc. as well as `TIER` → `KEYMAN_TIER`. Unfortunately these variables are used in a lot of places, so this turned out to be a bit of a yak shave.
2025-05-12 08:58:19 +02:00
Eberhard Beilharz
7f12f904eb
maint(common): address code review comments
- remove `builder_is_running_on_ci` function since there already is a
  similar `builder_is_ci_build` function
- use `GITHUB_ACTIONS` environment variable instead of `GITHUB_RUN_ID`
  to detect if we're run be GitHub Actions
2025-05-09 11:39:57 +02:00
Darcy Wong
e061d3e755 docs(android): Update minimum versions docs 2025-05-09 09:43:54 +07:00
Eberhard Beilharz
3634dd1702
maint(common): add three more functions to detect if running on CI
This adds the three additional functions `builder_is_running_on_ci`,
`builder_is_running_on_docker`, and `builder_is_running_on_gha` to be
able to detect if the build is running in a CI or CI-like container
environment.
2025-05-08 17:44:40 +02:00
Eberhard Beilharz
44fb0fe0e9
docs(common): update builder_echo documentation for TC blocks 2025-05-07 18:57:31 +02:00
Eberhard Beilharz
4d81589f48
maint(common): use unique names for Keyman version variables
Previously the builder scripts defined a readonly `VERSION` environment
variable for the Keyman version. That caused problems when another
(external) script tried to define a `VERSION` variable. We encountered
this problem when trying to move the TC build steps of a configuration
into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.

This change uses a Keyman specific prefix for the version variables and
renames `VERSION` → `KEYMAN_VERSION` etc. Unfortunately these variables
are used in a lot of places, so this turned out to be a bit of a yak
shave.

Test-bot: skip
2025-05-07 18:46:51 +02:00
Eberhard Beilharz
addd8b2471
docs(common): document new builder_is_running_on_teamcity function 2025-05-07 11:03:06 +02:00
Marc Durdin
5f772c10f8
Merge pull request #13803 from keymanapp/maint/common/13582-test-resource-minimum-versions
maint(common): test imported resource versions
2025-05-02 13:40:34 +07:00
Marc Durdin
830664c8b2 docs: add --deps flags and move builder.md into /docs 2025-05-02 05:15:27 +07:00
Marc Durdin
61a114e937 maint(common): test imported resource versions
Examines imported resources such as standards data for version
information, and compares against our published minimum-versions.inc.sh
data. This test will be run in CI in common/tests.

Fixes: #13582
Test-bot: skip
2025-04-30 10:31:21 +07:00
Marc Durdin
762fa9a3d7 maint: remove platform advocates from CODEOWNERS
These remain commented out, but status.keyman.com will parse all lines
starting with #/<path>/ in order to find the platform owners.
2025-04-30 09:19:25 +07:00
Steven R. Loomis
355b7d5ba1
comment out CODEOWNERS 2025-04-23 07:14:53 -05:00
Marc Durdin
9d4214c54c chore: Merge remote-tracking branch 'origin/master' into chore/merge-beta-to-master-release-prep 2025-04-22 13:16:21 +07:00
Darcy Wong
86b659a1c1 docs(common): Document Keyman website server-side dependencies
Adds a table showing server-side dependencies
2025-04-02 07:30:10 +07:00