This change is in response to inconsistent build behavior where we
observed better outcomes after manually cleaning the Carthage cache.
The cache folder had clearly also become very large over time so this
has the side benefit of clearing up space on the build agents. It is
unclear how much time this will cost in the build, but we don't suppose
it will make them dramatically slower.
Note: the same change has been applied in TC for stable-18.0 builds.
Test-bot: skip
This change adds the `assert-true` and `assert-false` function to our
bash testing framework, together with unit tests.
Also rename the test file to `testing-framework.inc.tests.sh` to match
the implementation file.
# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
# Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
# Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
There were two issues arising from #15493 - first,
`$KEYMAN_SYMSTOREPATH` was set too late, after the build, and second,
symsrv renames `000admin` to `000Admin` but we need to keep it lowercase
for our deployment server, so rename it back just in time before
uploading.
As tidy-up, given that the folder name `000admin` is static and never
changes, removed the parameter and hard-coded it instead.
* export `$KEYMAN_SYMSTOREPATH` before build
* define `000admin` folder explicitly and deprecate --symbols-subdir parameter
* rename `000Admin` to `000admin` before upload
Fixes: #14837
Follows: #15493
Test-bot: skip
maint(common): fix build when using different default node version
Currently automatically setting the node version (by setting the `KEYMAN_USE_NVM` env variable) is kind of broken on Linux because it still requires to put `~/.keyman/node` on the PATH. This basically limits us to the node version Keyman needs.
This change checks the path variable and adds `~/.keyman/node` if necessary. This allows to not have that on the path, thus allowing to use different node versions outside of Keyman, but still allows Keyman to build with the node version it needs.
Currently automatically setting the node version (by setting the
`KEYMAN_USE_NVM` env variable) is kind of broken on Linux because it
still requires to put `~/.keyman/node` on the PATH. This basically
limits us to the node version Keyman needs.
This change checks the path variable and adds `~/.keyman/node` if
necessary. This allows to not have that on the path, thus allowing to
use different node versions outside of Keyman, but still allows Keyman
to build with the node version it needs.
Test-bot: skip
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
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
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
# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
# Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
# Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
fix the version.rc files to display the correct description
and file name for keymanhp.*.exe fix version rc files to display correct
Also fix up the Keymanengine arm64 version names.