spiegel-keyman/resources/teamcity
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
..
android Merge pull request #14490 from keymanapp/maint/android/14284-publish-sentry-symbols-on-release-buildlevel 2025-08-20 20:20:25 +07:00
common maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
developer maint(resources): move NPM package publishing to GitHub Actions 2025-10-27 16:31:55 +01:00
includes maint(linux): suppress output of stopping processes after test run 2025-10-06 16:13:44 +02:00
ios maint(resources): rename KEYMAN_VERSION_FOR_PR_FILENAME 2025-09-10 11:17:41 +02:00
linux maint(linux): remove obsolete Makefile 2025-09-05 10:40:16 +02:00
macos maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
triggers maint(resources): further logging and fix indirection bug with watch 2025-10-06 16:55:02 +02:00
web maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
windows docs(common): update docs Keyman Desktop → Keyman for Windows 2025-09-02 14:29:53 +02:00
README.md chore(developer): Merge branch 'maint/web/13399_tc-config_dev' into maint/developer/13399_tc-config-dev-refactor 2025-06-04 18:27:07 +02:00

Teamcity Build Configuration Scripts

This directory contains TeamCity (TC) build scripts. Each script corresponds to a build configuration on TC.

Running scripts locally

It's possible to run some of the build locally in a Docker container. Of course this won't work for the parts, like uploading files, that require keys or other secrets.

To run locally start a Docker container:

docker run -v $(pwd):/Develop -it ubuntu:24.04 /bin/bash

(for the Linux integration tests, you'll have to pass --privileged as well.)

Inside of the container, run

apt update && apt install -y sudo
export DOCKER_RUNNING=1
echo "ubuntu ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
su ubuntu

and then run the build, e.g.

cd /Develop
resources/teamcity/linux/keyman-linux-test.sh configure,build,test