Commit graph

38 commits

Author SHA1 Message Date
Marc Durdin
98cc5e8893 maint(windows): rename action and clarify documentation
Build-bot: skip
2025-12-17 04:46:07 +11:00
Marc Durdin
3048705c9b maint(windows): add GitHub Action for ARM64 test for Keyman Core
Add a GitHub action to test Keyman Core on Windows / ARM64. We do not
have a TeamCity ARM64 agent for this. There are a number of config
challenges in making this work as many deps do not yet support ARM64;
however the changes are isolated to the .yml.

Test-bot: skip
2025-12-16 06:48:25 +11: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
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
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
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
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
Markus Greiner
1cf644a0b8
Merge pull request #14674 from keymanapp/maint/common/13954-create-gha-for-docker-images
maint(resources): adding GitHub actions workflow for Docker builds
2025-09-10 10:01:36 +02:00
Markus Greiner
535f7aa153 maint(resources): added trigger for Docker images build, pubish, test
moving example script to readme file
adding delete job for container images in ghcr

Part-of: #13594
Test-bot: skip
Build-bot: skip
2025-09-08 17:28:11 +02:00
Eberhard Beilharz
ab33d638f5
maint(linux): check that command is at beginning of line
Addresses code review comments.

Co-Authored-By: Marc Durdin <marc@durdin.net>
2025-09-08 16:52:56 +02: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
Eberhard Beilharz
a9597b58da
refactor(resources): remove shellcheck warnings 2025-09-05 19:02:16 +02:00
Marc Durdin
b2e731e2b5 feat: support pagination in build bot PR commit reading
Todo: cherry-pick this to master
Build-bot: skip build:developer
2025-08-28 15:23:17 +02:00
Marc Durdin
f75aaf0efe chore(resources): Merge branch 'master' into maint/resources/14565-fix-build-bot-parse-and-add-logging 2025-08-28 04:45:53 +02:00
Marc Durdin
1bc8a33289 maint(resources): update comment and remove duplicate comma from regex 2025-08-28 04:38:20 +02:00
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
Eberhard Beilharz
4c57967e79
refactor(common): fix shellcheck warnings
Test-bot: skip
2025-08-22 17:52:09 +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
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
81c807c257 chore(common): Merge branch 'master' into maint/common/14453-move-ci-scripts 2025-08-19 10:46:11 +02:00
Marc Durdin
f3fb3ac87b maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh
Removes a number of unused functions from the file, renames remaining
functions to match our builder script prefix patterns, removes unused
imports from various build scripts (e.g. Android).

Fixes: #14453
2025-08-05 12:54:56 +10:00
Marc Durdin
358b6665c2 maint(common): move help-keyman-com.sh to ci/
Relates-to: #14453
2025-08-05 11:59:15 +10:00
Marc Durdin
e46828b339 maint(common): move trigger*.inc.sh and sentry-control.inc.sh to ci/
Relates-to: #14453
2025-08-05 11:06:14 +10:00
Marc Durdin
3c3ad4a088 maint(common): move github.inc.sh to ci/
Relates-to: #14453
2025-08-05 10:51:19 +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
Marc Durdin
3754cac89b maint(resources): only automatically merge keyman-server PRs with automerge label
Prevents PRs from keyman-server from being merged unless they already
have the 'automerge' label. This supports the upcoming epic-master-merge
infrastructure, where we would like to automatically approve the PRs but
allow maintainers to merge when ready.

We cannot specify required status checks at this point, because we don't
necessarily know which status checks will be required for a given PR. A
future improvement would be to define a new status check which verifies
that all the expected builds for a given PR have passed, and then make
that into a required status check for all master,beta,stable-x.y,epic/
branches. This status check would need to be updated automatically
whenever another status check completes. Probably should be implemented
as a GHA.

In the future, we could move to using GitHub's auto-merge functionality,
and not use the current auto-merge action but that's a much bigger
change.

Also, upgraded auto-approve to v4.0.0 to remove node deprecation
warnings.
2025-06-13 09:32:04 +10: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
Joshua Horton
c505663046 maint: remove triggers for LMLayer-specific build configuration 2025-04-30 15:05:48 +07:00
Marc Durdin
02812af97f fix(common): specify title explicitly when opening PR with hub
Fixes #11125.

Discussion in #11125; looks like it may be due to a race in hub?
2024-04-05 09:20:23 +07:00
Marc Durdin
09e971d3ca chore: tweak script for stability 2024-02-01 16:16:19 +07:00
Marc Durdin
7c8003a0f7 chore(common): cancel earlier builds when new test builds triggered
Fixes #10590.

Cancels existing running or queued test builds on TeamCity when a new
build is started for the same 'branch' (aka branch or PR).

Does not touch release builds or other projects -- only touches
recognized test build configurations.
2024-02-01 16:02:23 +07:00
Marc Durdin
6c00656849 chore(common): unify pull-request creation scripts
Fixes #9886.
2023-10-30 06:22:52 +07:00